![]() Server : LiteSpeed System : Linux premium84.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 User : claqxcrl ( 523) PHP Version : 8.1.32 Disable Function : NONE Directory : /home/claqxcrl/public_html/wp-content/plugins/extendify/src/Launch/state/ |
import { safeParseJson } from '@shared/lib/parsing'; import { create } from 'zustand'; import { devtools, persist, createJSONStorage } from 'zustand/middleware'; const initialState = { pages: [], style: null, }; const key = `extendify-launch-pages-selection-${window.extSharedData.siteId}`; const state = (set, get) => ({ // initialize the state with default values ...initialState, ...(safeParseJson(window.localStorage.getItem(key))?.state || {}), has(type, item) { if (!item?.id) return false; return (get()?.[type] ?? [])?.some((t) => t.id === item.id); }, add(type, item) { if (get().has(type, item)) return; set({ [type]: [...(get()?.[type] ?? []), item] }); }, remove(type, item) { set({ [type]: get()?.[type]?.filter((t) => t.id !== item.id) }); }, removeAll(type) { set({ [type]: [] }); }, setStyle(style) { set({ style }); }, }); export const usePagesSelectionStore = create( persist(devtools(state, { name: 'Extendify Launch Pages Selections' }), { name: key, storage: createJSONStorage(() => localStorage), skipHydration: true, }), state, );