netlify-cms-widget-file
Version:
Widget for uploading files in Netlify CMS.
91 lines (75 loc) • 4.09 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _styledBase = _interopRequireDefault(require("@emotion/styled-base"));
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _immutable = require("immutable");
var _netlifyCmsUiDefault = require("netlify-cms-ui-default");
var _core = require("@emotion/core");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
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)."; }
const FileLink = ( /*#__PURE__*/0, _styledBase.default)(_ref => {
let {
href,
path
} = _ref;
return (0, _core.jsx)("a", {
href: href,
rel: "noopener noreferrer",
target: "_blank"
}, path);
}, {
target: "e1sxjo0z0",
label: "FileLink"
})(process.env.NODE_ENV === "production" ? {
name: "13o7eu2",
styles: "display:block;"
} : {
name: "13o7eu2",
styles: "display:block;",
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9GaWxlUHJldmlldy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVRSIsImZpbGUiOiIuLi8uLi9zcmMvRmlsZVByZXZpZXcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IExpc3QgfSBmcm9tICdpbW11dGFibGUnO1xuaW1wb3J0IHsgV2lkZ2V0UHJldmlld0NvbnRhaW5lciB9IGZyb20gJ25ldGxpZnktY21zLXVpLWRlZmF1bHQnO1xuXG5jb25zdCBGaWxlTGluayA9IHN0eWxlZCgoeyBocmVmLCBwYXRoIH0pID0+IChcbiAgPGEgaHJlZj17aHJlZn0gcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiIHRhcmdldD1cIl9ibGFua1wiPlxuICAgIHtwYXRofVxuICA8L2E+XG4pKWBcbiAgZGlzcGxheTogYmxvY2s7XG5gO1xuXG5mdW5jdGlvbiBGaWxlTGlua0xpc3QoeyB2YWx1ZXMsIGdldEFzc2V0LCBmaWVsZCB9KSB7XG4gIHJldHVybiAoXG4gICAgPGRpdj5cbiAgICAgIHt2YWx1ZXMubWFwKHZhbHVlID0+IChcbiAgICAgICAgPEZpbGVMaW5rIGtleT17dmFsdWV9IHBhdGg9e3ZhbHVlfSBocmVmPXtnZXRBc3NldCh2YWx1ZSwgZmllbGQpfSAvPlxuICAgICAgKSl9XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmZ1bmN0aW9uIEZpbGVDb250ZW50KHByb3BzKSB7XG4gIGNvbnN0IHsgdmFsdWUsIGdldEFzc2V0LCBmaWVsZCB9ID0gcHJvcHM7XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSB8fCBMaXN0LmlzTGlzdCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gPEZpbGVMaW5rTGlzdCB2YWx1ZXM9e3ZhbHVlfSBnZXRBc3NldD17Z2V0QXNzZXR9IGZpZWxkPXtmaWVsZH0gLz47XG4gIH1cbiAgcmV0dXJuIDxGaWxlTGluayBrZXk9e3ZhbHVlfSBwYXRoPXt2YWx1ZX0gaHJlZj17Z2V0QXNzZXQodmFsdWUsIGZpZWxkKX0gLz47XG59XG5cbmZ1bmN0aW9uIEZpbGVQcmV2aWV3KHByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPFdpZGdldFByZXZpZXdDb250YWluZXI+XG4gICAgICB7cHJvcHMudmFsdWUgPyA8RmlsZUNvbnRlbnQgey4uLnByb3BzfSAvPiA6IG51bGx9XG4gICAgPC9XaWRnZXRQcmV2aWV3Q29udGFpbmVyPlxuICApO1xufVxuXG5GaWxlUHJldmlldy5wcm9wVHlwZXMgPSB7XG4gIGdldEFzc2V0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB2YWx1ZTogUHJvcFR5cGVzLm5vZGUsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBGaWxlUHJldmlldztcbiJdfQ== */",
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
});
function FileLinkList(_ref2) {
let {
values,
getAsset,
field
} = _ref2;
return (0, _core.jsx)("div", null, values.map(value => (0, _core.jsx)(FileLink, {
key: value,
path: value,
href: getAsset(value, field)
})));
}
function FileContent(props) {
const {
value,
getAsset,
field
} = props;
if (Array.isArray(value) || _immutable.List.isList(value)) {
return (0, _core.jsx)(FileLinkList, {
values: value,
getAsset: getAsset,
field: field
});
}
return (0, _core.jsx)(FileLink, {
key: value,
path: value,
href: getAsset(value, field)
});
}
function FilePreview(props) {
return (0, _core.jsx)(_netlifyCmsUiDefault.WidgetPreviewContainer, null, props.value ? (0, _core.jsx)(FileContent, props) : null);
}
FilePreview.propTypes = {
getAsset: _propTypes.default.func.isRequired,
value: _propTypes.default.node
};
var _default = FilePreview;
exports.default = _default;