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); }); },
}); }, 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 });