svelte-command-palette
Version:
#### Increase your productivity exponentially. 🚀🚀
50 lines (49 loc) • 1.51 kB
JavaScript
import { get } from 'svelte/store';
import { paletteStore } from '../store/PaletteStore';
import { defaultAppState } from '../constants';
const createStoreMethods = () => {
const storeProps = get(paletteStore);
const resetPaletteStore = () => {
paletteStore.update((n) => ({ ...n, ...defaultAppState }));
};
const openPalette = () => {
paletteStore.update((n) => ({ ...n, isVisible: true }));
};
const closePalette = () => {
resetPaletteStore();
};
const togglePalette = () => {
paletteStore.update((n) => ({
...n,
isVisible: !n.isVisible,
activeCommandId: ''
}));
};
const getAllCalledActions = () => {
return storeProps.calledActions || [];
};
const storeCalledAction = (id) => {
const { calledActions } = storeProps;
calledActions.push(id);
paletteStore.update((n) => ({ ...n, calledActions }));
};
const revertLastAction = (id) => {
const { calledActions } = storeProps;
calledActions.pop();
paletteStore.update((n) => ({ ...n, calledActions }));
};
const resetActionLog = () => {
paletteStore.update((n) => ({ ...n, calledActions: [] }));
};
return {
togglePalette,
getAllCalledActions,
storeCalledAction,
revertLastAction,
resetActionLog,
openPalette,
closePalette,
resetPaletteStore
};
};
export default createStoreMethods;