refactor(state): address review recommendations for store and prefs
This commit is contained in:
@@ -67,12 +67,12 @@ describe('prefs', () => {
|
||||
|
||||
expect(localStorage.getItem('idlegame:prefs:v2')).toBeNull();
|
||||
});
|
||||
});
|
||||
|
||||
describe('expanded prefs', () => {
|
||||
it('defaults collapsedActionGroups and showEventLog', () => {
|
||||
const prefs = getPrefs();
|
||||
expect(prefs.collapsedActionGroups).toEqual({});
|
||||
expect(prefs.showEventLog).toBe(true);
|
||||
describe('expanded prefs', () => {
|
||||
it('defaults collapsedActionGroups and showEventLog', () => {
|
||||
const prefs = getPrefs();
|
||||
expect(prefs.collapsedActionGroups).toEqual({});
|
||||
expect(prefs.showEventLog).toBe(true);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -34,18 +34,12 @@ describe('game store nav and prefs', () => {
|
||||
const state = useGameStore.getState();
|
||||
state.setActivePanel('story');
|
||||
expect(useGameStore.getState().activePanel).toBe('story');
|
||||
|
||||
// Reset back
|
||||
useGameStore.getState().setActivePanel('play');
|
||||
});
|
||||
|
||||
it('updates selectedStoryNodeId via setSelectedStoryNodeId', () => {
|
||||
const state = useGameStore.getState();
|
||||
state.setSelectedStoryNodeId('node-1');
|
||||
expect(useGameStore.getState().selectedStoryNodeId).toBe('node-1');
|
||||
|
||||
state.setSelectedStoryNodeId(null);
|
||||
expect(useGameStore.getState().selectedStoryNodeId).toBeNull();
|
||||
});
|
||||
|
||||
it('toggles collapsed action groups in prefs', () => {
|
||||
|
||||
+2
-2
@@ -39,7 +39,7 @@ export interface GameStoreState extends GameView {
|
||||
toggleActionGroupCollapsed: (groupKey: string) => void;
|
||||
}
|
||||
|
||||
export const useGameStore = create<GameStoreState>((set) => ({
|
||||
export const useGameStore = create<GameStoreState>((set, get) => ({
|
||||
resources: [],
|
||||
activeActionId: null,
|
||||
actionName: null,
|
||||
@@ -70,7 +70,7 @@ export const useGameStore = create<GameStoreState>((set) => ({
|
||||
setActivePanel: (panel) => set({ activePanel: panel }),
|
||||
setSelectedStoryNodeId: (id) => set({ selectedStoryNodeId: id }),
|
||||
toggleActionGroupCollapsed: (groupKey) => {
|
||||
const currentPrefs = useGameStore.getState().prefs;
|
||||
const currentPrefs = get().prefs;
|
||||
const nextCollapsed = {
|
||||
...currentPrefs.collapsedActionGroups,
|
||||
[groupKey]: !currentPrefs.collapsedActionGroups[groupKey],
|
||||
|
||||
Reference in New Issue
Block a user