@uiw/react-markdown-preview-example
Version:
Preview the markdown files and run the React examples in the documentation.
59 lines • 1.28 kB
JavaScript
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);
}