@sanity/form-builder
Version:
Sanity form builder
42 lines (40 loc) • 2.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireDefault(require("react"));
var _FileInput = _interopRequireDefault(require("../../inputs/files/FileInput"));
var _resolveUploader = _interopRequireDefault(require("../uploads/resolveUploader"));
var _legacyParts = require("../../legacyParts");
var _withValuePath = _interopRequireDefault(require("../../utils/withValuePath"));
var _assets = require("./client-adapters/assets");
var _wrapWithDocument = require("./wrapWithDocument");
var _formBuilderConfig$fi;
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.userDefinedFileAssetSources ? ensureArrayOfSources(_legacyParts.userDefinedFileAssetSources) : _legacyParts.defaultFileAssetSources;
var SUPPORT_DIRECT_UPLOADS = (_legacyParts.formBuilderConfig === null || _legacyParts.formBuilderConfig === void 0 || (_formBuilderConfig$fi = _legacyParts.formBuilderConfig.files) === null || _formBuilderConfig$fi === void 0 ? void 0 : _formBuilderConfig$fi.directUploads) !== false;
var FileInputWithValuePath = (0, _withValuePath.default)(_FileInput.default);
var _default = /*#__PURE__*/_react.default.forwardRef(function SanityFileInput(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]);
return /*#__PURE__*/_react.default.createElement(FileInputWithValuePath, _extends({}, props, {
resolveUploader: _resolveUploader.default,
observeAsset: _assets.observeFileAsset,
assetSources: assetSources,
directUploads: SUPPORT_DIRECT_UPLOADS,
ref: forwardedRef
}));
});
exports.default = _default;
function ensureArrayOfSources(sources) {
if (Array.isArray(sources)) {
return sources;
}
console.warn('Configured file asset sources is not an array - if `part:@sanity/form-builder/input/file/asset-sources` is defined, make sure it returns an array!');
return _legacyParts.defaultFileAssetSources;
}