@uploadcare/react-widget
Version:
React File Uploader. React component with uploading from multiple sources
57 lines (48 loc) • 1.7 kB
JavaScript
;
var React = require('react');
var index = require('./index-f2aa1c3c.cjs');
var isEqual = require('react-fast-compare');
var useCommitedRef = function useCommitedRef(value) {
var ref = React.useRef(value);
React.useEffect(function () {
ref.current = value;
}, [value]);
return ref;
};
var useCommitedCallback = function useCommitedCallback(callback) {
var ref = useCommitedRef(callback);
return React.useCallback(function () {
return ref.current && ref.current.apply(ref, arguments);
}, [ref]);
};
var useDeepEffect = function useDeepEffect(effect, deps) {
var ref = React.useRef(undefined);
if (!isEqual(deps, ref.current)) {
ref.current = deps;
}
// eslint-disable-next-line react-hooks/exhaustive-deps
React.useEffect(effect, ref.current);
};
var useCustomTabs = function useCustomTabs(tabs, uploadcare) {
useDeepEffect(function () {
var customTabs = Object.entries(tabs || []);
customTabs.forEach(function (_ref) {
var _ref2 = index._slicedToArray(_ref, 2),
name = _ref2[0],
implementation = _ref2[1];
uploadcare.registerTab(name, function () {
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return implementation.apply(void 0, args.concat([uploadcare]));
});
});
}, [tabs, uploadcare]);
};
var defaultPreviewUrlCallback = function defaultPreviewUrlCallback(cdnUrl) {
return cdnUrl;
};
exports.defaultPreviewUrlCallback = defaultPreviewUrlCallback;
exports.useCommitedCallback = useCommitedCallback;
exports.useCustomTabs = useCustomTabs;
exports.useDeepEffect = useDeepEffect;