@sanity/form-builder
Version:
Sanity form builder
44 lines (42 loc) • 2.94 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireDefault(require("react"));
var _imageUrl = _interopRequireDefault(require("@sanity/image-url"));
var _ImageInput = _interopRequireDefault(require("../../inputs/files/ImageInput"));
var _legacyParts = require("../../legacyParts");
var _versionedClient = require("../versionedClient");
var _withValuePath = _interopRequireDefault(require("../../utils/withValuePath"));
var _assets = require("./client-adapters/assets");
var _wrapWithDocument = require("./wrapWithDocument");
var _formBuilderConfig$im;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
var globalAssetSources = _legacyParts.userDefinedImageAssetSources ? ensureArrayOfSources(_legacyParts.userDefinedImageAssetSources) : _legacyParts.defaultImageAssetSources;
var SUPPORT_DIRECT_UPLOADS = (_legacyParts.formBuilderConfig === null || _legacyParts.formBuilderConfig === void 0 || (_formBuilderConfig$im = _legacyParts.formBuilderConfig.images) === null || _formBuilderConfig$im === void 0 ? void 0 : _formBuilderConfig$im.directUploads) !== false;
var ImageInputWithValuePath = (0, _withValuePath.default)(_ImageInput.default);
var _default = /*#__PURE__*/_react.default.forwardRef(function SanityImageInput(props, forwardedRef) {
var _props$type$options;
var sourcesFromSchema = (_props$type$options = props.type.options) === null || _props$type$options === void 0 ? void 0 : _props$type$options.sources;
// note: type.options.sources may be an empty array and in that case we're
// disabling selecting images from asset source (it's a feature, not a bug)
var assetSources = _react.default.useMemo(() => (sourcesFromSchema || globalAssetSources).map(_wrapWithDocument.wrapWithDocument), [sourcesFromSchema]);
var builder = _react.default.useMemo(() => (0, _imageUrl.default)(_versionedClient.versionedClient), []);
return /*#__PURE__*/_react.default.createElement(ImageInputWithValuePath, _extends({}, props, {
observeAsset: _assets.observeImageAsset,
assetSources: assetSources,
directUploads: SUPPORT_DIRECT_UPLOADS,
ref: forwardedRef,
imageUrlBuilder: builder
}));
});
exports.default = _default;
function ensureArrayOfSources(sources) {
if (Array.isArray(sources)) {
return sources;
}
console.warn('Configured image asset sources is not an array - if `part:@sanity/form-builder/input/image/asset-sources` is defined, make sure it returns an array!');
return _legacyParts.defaultImageAssetSources;
}