UNPKG

@uploadcare/react-widget

Version:

React File Uploader. React component with uploading from multiple sources

57 lines (48 loc) 1.7 kB
'use strict'; 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;