back
loading skill details...
Use for Zustand stores: state shapes and type sources, state-only stores with xActions classes, replica-backed list/detail data (@lobechat/replica), selectors,…
LobeHub Zustand State Management State Shapes and Types Import shared store types from @lobechat/types, not @lobechat/database. Keep lightweight list-item types separate from full detail types; list types must not extend heavy detail types. Key cached details by id (xxxDetailMap: Record<string, Detail>); never hold a single currentDetail object. Read through xxxSelectors aggregates (selectors.ts), not ad-hoc lambdas repeated across components. Before choosing list/detail shapes or type sources, read Data structures. State-Only Stores (default for new and migrated stores) Actions stay out of the Zustand state. Reference: src/store/page. File Owns store.ts useXStore = createWithEqualityFn<XState>()(devtools(() => initialState), shallow): state only, no methods privateAction.ts XPrivateAction: replica slices, entity links, and write helpers shared by public actions. Not exported from index.ts action.ts XActionImpl (the public API) and the singleton xActions = new XActionImpl(setState, getState, new XPrivateAction(…))
don't have the plugin yet? install it then click "run inline in claude" again.