UNPKG

storybook-addon-playground

Version:

A playground to enable consumers learn how to use the component library or to reproduce bugs

25 lines (22 loc) 985 B
import { useState, useMemo, useCallback } from 'react'; import { useAddonState } from '@storybook/manager-api'; import { PANEL_ID } from '../consts/addon-consts.js'; import { DEFAULT_ADDON_STATE } from '../consts/state-consts.js'; import '@codemirror/commands'; const useCopyToClipboard = (code) => { const [state] = useAddonState(PANEL_ID, DEFAULT_ADDON_STATE); const [isCopied, setCopied] = useState(false); const currentTabCode = code[state.selectedTab]; const shouldAllowCopy = useMemo(() => currentTabCode?.length > 0, [currentTabCode?.length]); const onCopy = useCallback(() => { if (!shouldAllowCopy) { return; } navigator.clipboard.writeText(currentTabCode); setCopied(true); setTimeout(() => setCopied(false), 2000); }, [currentTabCode, shouldAllowCopy]); return { onCopy, isCopied, shouldAllowCopy }; }; export { useCopyToClipboard as default }; //# sourceMappingURL=useCopyToClipboard.js.map