UNPKG

react-use

Version:
43 lines (42 loc) 1.35 kB
import writeText from 'copy-to-clipboard'; import { useCallback } from 'react'; import useMountedState from './useMountedState'; import useSetState from './useSetState'; var useCopyToClipboard = function () { var isMounted = useMountedState(); var _a = useSetState({ value: undefined, error: undefined, noUserInteraction: true, }), state = _a[0], setState = _a[1]; var copyToClipboard = useCallback(function (value) { try { if (process.env.NODE_ENV === 'development') { if (typeof value !== 'string') { console.error("Cannot copy typeof " + typeof value + " to clipboard, must be a string"); } } var noUserInteraction = writeText(value); if (!isMounted()) { return; } setState({ value: value, error: undefined, noUserInteraction: noUserInteraction, }); } catch (error) { if (!isMounted()) { return; } setState({ value: undefined, error: error, noUserInteraction: true, }); } }, []); return [state, copyToClipboard]; }; export default useCopyToClipboard;