UNPKG

@uploadcare/react-widget

Version:

React File Uploader. React component with uploading from multiple sources

52 lines (44 loc) 1.6 kB
import { useRef, useEffect, useCallback } from 'react'; import { b as _slicedToArray } from './index-881e303a.mjs'; import isEqual from 'react-fast-compare'; var useCommitedRef = function useCommitedRef(value) { var ref = useRef(value); useEffect(function () { ref.current = value; }, [value]); return ref; }; var useCommitedCallback = function useCommitedCallback(callback) { var ref = useCommitedRef(callback); return useCallback(function () { return ref.current && ref.current.apply(ref, arguments); }, [ref]); }; var useDeepEffect = function useDeepEffect(effect, deps) { var ref = useRef(undefined); if (!isEqual(deps, ref.current)) { ref.current = deps; } // eslint-disable-next-line react-hooks/exhaustive-deps useEffect(effect, ref.current); }; var useCustomTabs = function useCustomTabs(tabs, uploadcare) { useDeepEffect(function () { var customTabs = Object.entries(tabs || []); customTabs.forEach(function (_ref) { var _ref2 = _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; }; export { useCustomTabs as a, useDeepEffect as b, defaultPreviewUrlCallback as d, useCommitedCallback as u };