UNPKG

@fgnass/decap-cms-widget-image

Version:

Widget for uploading images in Decap CMS.

67 lines 4.13 kB
import _styled from "@emotion/styled/base"; function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; } import React, { useEffect, useState } from 'react'; import PropTypes from 'prop-types'; import { List } from 'immutable'; import { WidgetPreviewContainer } from 'decap-cms-ui-default'; import { jsx as ___EmotionJSX } from "@emotion/react"; const StyledImage = /*#__PURE__*/_styled(({ src }) => ___EmotionJSX("img", { src: src || '', role: "presentation" }), { target: "eeuykvb0", label: "StyledImage" })(process.env.NODE_ENV === "production" ? { name: "waguu7", styles: "display:block;max-width:100%;height:auto" } : { name: "waguu7", styles: "display:block;max-width:100%;height:auto", map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9JbWFnZVByZXZpZXcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTW9GIiwiZmlsZSI6Ii4uLy4uL3NyYy9JbWFnZVByZXZpZXcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBMaXN0IH0gZnJvbSAnaW1tdXRhYmxlJztcbmltcG9ydCB7IFdpZGdldFByZXZpZXdDb250YWluZXIgfSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmNvbnN0IFN0eWxlZEltYWdlID0gc3R5bGVkKCh7IHNyYyB9KSA9PiA8aW1nIHNyYz17c3JjIHx8ICcnfSByb2xlPVwicHJlc2VudGF0aW9uXCIgLz4pYFxuICBkaXNwbGF5OiBibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG5gO1xuXG5mdW5jdGlvbiBTdHlsZWRJbWFnZUFzc2V0KHsgZ2V0QXNzZXQsIHZhbHVlLCBmaWVsZCB9KSB7XG4gIGNvbnN0IFthc3NldCwgc2V0QXNzZXRdID0gdXNlU3RhdGUobnVsbCk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGNvbnN0IG5ld0Fzc2V0ID0gZ2V0QXNzZXQodmFsdWUsIGZpZWxkKTtcbiAgICAgIHNldEFzc2V0KG5ld0Fzc2V0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0QXNzZXQobnVsbCk7XG4gICAgfVxuICB9LCBbdmFsdWUsIGZpZWxkLCBnZXRBc3NldF0pO1xuXG4gIHJldHVybiBhc3NldCA/IDxTdHlsZWRJbWFnZSByb2xlPVwicHJlc2VudGF0aW9uXCIgc3JjPXthc3NldH0gLz4gOiBudWxsO1xufVxuXG5mdW5jdGlvbiBJbWFnZVByZXZpZXdDb250ZW50KHByb3BzKSB7XG4gIGNvbnN0IHsgdmFsdWUsIGdldEFzc2V0LCBmaWVsZCB9ID0gcHJvcHM7XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSB8fCBMaXN0LmlzTGlzdCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUubWFwKCh2YWwsIGluZGV4KSA9PiAoXG4gICAgICA8U3R5bGVkSW1hZ2VBc3NldCBrZXk9e2luZGV4fSB2YWx1ZT17dmFsfSBnZXRBc3NldD17Z2V0QXNzZXR9IGZpZWxkPXtmaWVsZH0gLz5cbiAgICApKTtcbiAgfVxuICByZXR1cm4gPFN0eWxlZEltYWdlQXNzZXQgey4uLnByb3BzfSAvPjtcbn1cblxuZnVuY3Rpb24gSW1hZ2VQcmV2aWV3KHByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPFdpZGdldFByZXZpZXdDb250YWluZXI+XG4gICAgICB7cHJvcHMudmFsdWUgPyA8SW1hZ2VQcmV2aWV3Q29udGVudCB7Li4ucHJvcHN9IC8+IDogbnVsbH1cbiAgICA8L1dpZGdldFByZXZpZXdDb250YWluZXI+XG4gICk7XG59XG5cbkltYWdlUHJldmlldy5wcm9wVHlwZXMgPSB7XG4gIGdldEFzc2V0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB2YWx1ZTogUHJvcFR5cGVzLm5vZGUsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBJbWFnZVByZXZpZXc7XG4iXX0= */", toString: _EMOTION_STRINGIFIED_CSS_ERROR__ }); function StyledImageAsset({ getAsset, value, field }) { const [asset, setAsset] = useState(null); useEffect(() => { if (value) { const newAsset = getAsset(value, field); setAsset(newAsset); } else { setAsset(null); } }, [value, field, getAsset]); return asset ? ___EmotionJSX(StyledImage, { role: "presentation", src: asset }) : null; } function ImagePreviewContent(props) { const { value, getAsset, field } = props; if (Array.isArray(value) || List.isList(value)) { return value.map((val, index) => ___EmotionJSX(StyledImageAsset, { key: index, value: val, getAsset: getAsset, field: field })); } return ___EmotionJSX(StyledImageAsset, props); } function ImagePreview(props) { return ___EmotionJSX(WidgetPreviewContainer, null, props.value ? ___EmotionJSX(ImagePreviewContent, props) : null); } ImagePreview.propTypes = { getAsset: PropTypes.func.isRequired, value: PropTypes.node }; export default ImagePreview;