function(childrenDoc, cbNext) {
            // Remove all the ancestors that now are not ancestors
            let newAncestors = _dropWhile(childrenDoc[ancestors], function(elementId) {
              return elementId.toString() !== doc[id].toString();
            });
            childrenDoc[ancestors] = _concat(doc[ancestors], newAncestors);

            childrenDoc.save(function(err, data) {
              cbNext(err, data);
            });
          },
Example #2
0
    });
  },
  getSizesArray(sizesObject) {
    return sortBy(map(omit(sizesObject, (size, name) => {
      return name === 'thumbnail' || endsWith(name, '_crop');
    }), (size, name) => {
      size.name = name;
      return size;
    }), 'width');
  },
  getImageUrl(size) {
    return size.url || size.source_url;
  },
  getNewSize(sizes, containerSize) {
    const isSmallerThanContainer = size => size.width < containerSize;
    const newSize = first(dropWhile(sizes, isSmallerThanContainer));
    return newSize || last(sizes) || {};
  },
  render() {
    const { className, altText, children: originalChildren, wrap } = this.props;
    const classes = classnames('rimage', className, { 'background-image': wrap });
    const url = this.getImageUrl(this.state.size);
    const img = <img src={url} alt={altText} />;
    let rimage;

    if (wrap) {
      const props = { style: { backgroundImage: url && `url('${url}')` }};
      const children = createFragment({
        img: React.cloneElement(img, { className: 'img' }),
        originalChildren: originalChildren
      });