UNPKG

@uiw/react-markdown-preview-example

Version:

Preview the markdown files and run the React examples in the documentation.

59 lines 1.28 kB
import _extends from "@babel/runtime/helpers/extends"; import { useSyncExternalStore } from 'react'; var globalStore = { corners: { fixed: true, target: '__blank', zIndex: 10 }, darkMode: { permanent: true, dark: 'Dark', light: 'Light' }, example: null }; var listeners = []; export var store = { setCorners(opts) { globalStore = _extends({}, globalStore, { corners: _extends({}, globalStore.corners, opts) }); emitChange(); }, setDarkMode(opts) { globalStore = _extends({}, globalStore, { darkMode: _extends({}, globalStore.darkMode, opts) }); emitChange(); }, setExample(example) { globalStore = _extends({}, globalStore, { example }); emitChange(); }, setNavMenu(navMenu) { globalStore = _extends({}, globalStore, { navMenu: _extends({}, globalStore.navMenu, navMenu) }); emitChange(); } }; function getSnapshot() { return globalStore; } function subscribe(listener) { listeners = [...listeners, listener]; return () => { listeners = listeners.filter(l => l !== listener); }; } function emitChange() { for (var listener of listeners) { listener(); } } export function useStores() { return useSyncExternalStore(subscribe, getSnapshot); }