UNPKG

storybook-addon-playground

Version:

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

31 lines (28 loc) 1.23 kB
import { useEffect } from 'react'; import { PANEL_ID } from '../consts/addon-consts.js'; import { DEFAULT_ADDON_STATE } from '../consts/state-consts.js'; import { PLAYGROUND_STORY_PREPARED, PLAYGROUND_EDITOR_CHANGED } from '../consts/events-consts.js'; import '@codemirror/commands'; import { useStorybookApi, useAddonState } from '@storybook/manager-api'; import usePlaygroundState from './usePlaygroundState.js'; const useBroadcastEditorChanges = () => { const { emit, on, off } = useStorybookApi(); const { isPlaygroundStorySelected } = usePlaygroundState(); const [state] = useAddonState(PANEL_ID, DEFAULT_ADDON_STATE); const { code, hasInitialCodeLoaded } = state; useEffect(() => { const handleEditorChange = () => { emit(PLAYGROUND_EDITOR_CHANGED, code); }; if (!hasInitialCodeLoaded) { return; } if (isPlaygroundStorySelected) { handleEditorChange(); return; } on(PLAYGROUND_STORY_PREPARED, handleEditorChange); }, [emit, code, hasInitialCodeLoaded, isPlaygroundStorySelected, on, off]); }; export { useBroadcastEditorChanges as default }; //# sourceMappingURL=useBroadcastEditorChanges.js.map