mirror of
https://github.com/duckietm/Nitro-V3.git
synced 2026-06-20 15:36:18 +00:00
wired-tools(store): hoist inspection give pickers (inspectionGiveVariableItemId, inspectionGiveValue)
Move the Inspection-tab Give-variable popover picker pair into the Zustand store. Both writers use direct assignments (no updater shape), so the store setters are plain `(next: number) => void` / `(next: string) => void`. Defaults `0` / `'0'` match the existing "sentinel = not selected" convention used by the reset effects at WiredCreatorToolsView.tsx:3026-3042. Tests: 2 new cases (set+read pair, sentinel-reset). Suite: 199/199.
This commit is contained in:
@@ -58,8 +58,10 @@ export const WiredCreatorToolsView: FC<{}> = () =>
|
|||||||
const setSelectedInspectionVariableKeys = useWiredCreatorToolsUiStore(s => s.setSelectedInspectionVariableKeys);
|
const setSelectedInspectionVariableKeys = useWiredCreatorToolsUiStore(s => s.setSelectedInspectionVariableKeys);
|
||||||
const isInspectionGiveOpen = useWiredCreatorToolsUiStore(s => s.isInspectionGiveOpen);
|
const isInspectionGiveOpen = useWiredCreatorToolsUiStore(s => s.isInspectionGiveOpen);
|
||||||
const setIsInspectionGiveOpen = useWiredCreatorToolsUiStore(s => s.setIsInspectionGiveOpen);
|
const setIsInspectionGiveOpen = useWiredCreatorToolsUiStore(s => s.setIsInspectionGiveOpen);
|
||||||
const [ inspectionGiveVariableItemId, setInspectionGiveVariableItemId ] = useState(0);
|
const inspectionGiveVariableItemId = useWiredCreatorToolsUiStore(s => s.inspectionGiveVariableItemId);
|
||||||
const [ inspectionGiveValue, setInspectionGiveValue ] = useState('0');
|
const setInspectionGiveVariableItemId = useWiredCreatorToolsUiStore(s => s.setInspectionGiveVariableItemId);
|
||||||
|
const inspectionGiveValue = useWiredCreatorToolsUiStore(s => s.inspectionGiveValue);
|
||||||
|
const setInspectionGiveValue = useWiredCreatorToolsUiStore(s => s.setInspectionGiveValue);
|
||||||
const isVariableManageOpen = useWiredCreatorToolsUiStore(s => s.isVariableManageOpen);
|
const isVariableManageOpen = useWiredCreatorToolsUiStore(s => s.isVariableManageOpen);
|
||||||
const setIsVariableManageOpen = useWiredCreatorToolsUiStore(s => s.setIsVariableManageOpen);
|
const setIsVariableManageOpen = useWiredCreatorToolsUiStore(s => s.setIsVariableManageOpen);
|
||||||
const variableManageTypeFilter = useWiredCreatorToolsUiStore(s => s.variableManageTypeFilter);
|
const variableManageTypeFilter = useWiredCreatorToolsUiStore(s => s.variableManageTypeFilter);
|
||||||
|
|||||||
@@ -30,7 +30,9 @@ const INITIAL = {
|
|||||||
editingManagedHolderVariableId: 0,
|
editingManagedHolderVariableId: 0,
|
||||||
editingManagedHolderValue: '',
|
editingManagedHolderValue: '',
|
||||||
selectedInspectionVariableKeys: { furni: '', user: '', global: '' },
|
selectedInspectionVariableKeys: { furni: '', user: '', global: '' },
|
||||||
selectedVariableKeys: { furni: '', user: '', global: '', context: '' }
|
selectedVariableKeys: { furni: '', user: '', global: '', context: '' },
|
||||||
|
inspectionGiveVariableItemId: 0,
|
||||||
|
inspectionGiveValue: '0'
|
||||||
};
|
};
|
||||||
|
|
||||||
describe('useWiredCreatorToolsUiStore', () =>
|
describe('useWiredCreatorToolsUiStore', () =>
|
||||||
@@ -72,6 +74,8 @@ describe('useWiredCreatorToolsUiStore', () =>
|
|||||||
expect(state.editingManagedHolderValue).toBe('');
|
expect(state.editingManagedHolderValue).toBe('');
|
||||||
expect(state.selectedInspectionVariableKeys).toEqual({ furni: '', user: '', global: '' });
|
expect(state.selectedInspectionVariableKeys).toEqual({ furni: '', user: '', global: '' });
|
||||||
expect(state.selectedVariableKeys).toEqual({ furni: '', user: '', global: '', context: '' });
|
expect(state.selectedVariableKeys).toEqual({ furni: '', user: '', global: '', context: '' });
|
||||||
|
expect(state.inspectionGiveVariableItemId).toBe(0);
|
||||||
|
expect(state.inspectionGiveValue).toBe('0');
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('setIsVisible', () =>
|
describe('setIsVisible', () =>
|
||||||
@@ -458,4 +462,28 @@ describe('useWiredCreatorToolsUiStore', () =>
|
|||||||
expect(useWiredCreatorToolsUiStore.getState().selectedInspectionVariableKeys.user).toBe('level');
|
expect(useWiredCreatorToolsUiStore.getState().selectedInspectionVariableKeys.user).toBe('level');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('inspection give pickers', () =>
|
||||||
|
{
|
||||||
|
it('setInspectionGiveVariableItemId / setInspectionGiveValue write the picker pair', () =>
|
||||||
|
{
|
||||||
|
useWiredCreatorToolsUiStore.getState().setInspectionGiveVariableItemId(42);
|
||||||
|
useWiredCreatorToolsUiStore.getState().setInspectionGiveValue('150');
|
||||||
|
|
||||||
|
expect(useWiredCreatorToolsUiStore.getState().inspectionGiveVariableItemId).toBe(42);
|
||||||
|
expect(useWiredCreatorToolsUiStore.getState().inspectionGiveValue).toBe('150');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('reset path uses 0 / "0" as the sentinel-empty pair (post-action and target-change paths)', () =>
|
||||||
|
{
|
||||||
|
useWiredCreatorToolsUiStore.getState().setInspectionGiveVariableItemId(42);
|
||||||
|
useWiredCreatorToolsUiStore.getState().setInspectionGiveValue('150');
|
||||||
|
|
||||||
|
useWiredCreatorToolsUiStore.getState().setInspectionGiveVariableItemId(0);
|
||||||
|
useWiredCreatorToolsUiStore.getState().setInspectionGiveValue('0');
|
||||||
|
|
||||||
|
expect(useWiredCreatorToolsUiStore.getState().inspectionGiveVariableItemId).toBe(0);
|
||||||
|
expect(useWiredCreatorToolsUiStore.getState().inspectionGiveValue).toBe('0');
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -91,6 +91,15 @@ interface WiredCreatorToolsUiState
|
|||||||
selectedInspectionVariableKeys: Record<InspectionElementType, string>;
|
selectedInspectionVariableKeys: Record<InspectionElementType, string>;
|
||||||
selectedVariableKeys: Record<VariablesElementType, string>;
|
selectedVariableKeys: Record<VariablesElementType, string>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Inspection-tab "Give variable" popover state. `itemId` is the
|
||||||
|
* picked variable definition id (0 = none); `value` is the in-flight
|
||||||
|
* value text. Both reset to their defaults whenever the inspection
|
||||||
|
* target changes (sync effect in WiredCreatorToolsView).
|
||||||
|
*/
|
||||||
|
inspectionGiveVariableItemId: number;
|
||||||
|
inspectionGiveValue: string;
|
||||||
|
|
||||||
setIsVisible: (next: Updater<boolean>) => void;
|
setIsVisible: (next: Updater<boolean>) => void;
|
||||||
setActiveTab: (next: WiredToolsTab) => void;
|
setActiveTab: (next: WiredToolsTab) => void;
|
||||||
setInspectionType: (next: InspectionElementType) => void;
|
setInspectionType: (next: InspectionElementType) => void;
|
||||||
@@ -128,6 +137,9 @@ interface WiredCreatorToolsUiState
|
|||||||
|
|
||||||
setSelectedInspectionVariableKeys: (next: Updater<Record<InspectionElementType, string>>) => void;
|
setSelectedInspectionVariableKeys: (next: Updater<Record<InspectionElementType, string>>) => void;
|
||||||
setSelectedVariableKeys: (next: Updater<Record<VariablesElementType, string>>) => void;
|
setSelectedVariableKeys: (next: Updater<Record<VariablesElementType, string>>) => void;
|
||||||
|
|
||||||
|
setInspectionGiveVariableItemId: (next: number) => void;
|
||||||
|
setInspectionGiveValue: (next: string) => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const useWiredCreatorToolsUiStore = createNitroStore<WiredCreatorToolsUiState>()((set) => ({
|
export const useWiredCreatorToolsUiStore = createNitroStore<WiredCreatorToolsUiState>()((set) => ({
|
||||||
@@ -168,6 +180,9 @@ export const useWiredCreatorToolsUiStore = createNitroStore<WiredCreatorToolsUiS
|
|||||||
selectedInspectionVariableKeys: { furni: '', user: '', global: '' },
|
selectedInspectionVariableKeys: { furni: '', user: '', global: '' },
|
||||||
selectedVariableKeys: { furni: '', user: '', global: '', context: '' },
|
selectedVariableKeys: { furni: '', user: '', global: '', context: '' },
|
||||||
|
|
||||||
|
inspectionGiveVariableItemId: 0,
|
||||||
|
inspectionGiveValue: '0',
|
||||||
|
|
||||||
setIsVisible: (next) => set(state => ({ isVisible: apply(state.isVisible, next) })),
|
setIsVisible: (next) => set(state => ({ isVisible: apply(state.isVisible, next) })),
|
||||||
setActiveTab: (next) => set({ activeTab: next }),
|
setActiveTab: (next) => set({ activeTab: next }),
|
||||||
setInspectionType: (next) => set({ inspectionType: next }),
|
setInspectionType: (next) => set({ inspectionType: next }),
|
||||||
@@ -204,5 +219,8 @@ export const useWiredCreatorToolsUiStore = createNitroStore<WiredCreatorToolsUiS
|
|||||||
setEditingManagedHolderValue: (next) => set({ editingManagedHolderValue: next }),
|
setEditingManagedHolderValue: (next) => set({ editingManagedHolderValue: next }),
|
||||||
|
|
||||||
setSelectedInspectionVariableKeys: (next) => set(state => ({ selectedInspectionVariableKeys: apply(state.selectedInspectionVariableKeys, next) })),
|
setSelectedInspectionVariableKeys: (next) => set(state => ({ selectedInspectionVariableKeys: apply(state.selectedInspectionVariableKeys, next) })),
|
||||||
setSelectedVariableKeys: (next) => set(state => ({ selectedVariableKeys: apply(state.selectedVariableKeys, next) }))
|
setSelectedVariableKeys: (next) => set(state => ({ selectedVariableKeys: apply(state.selectedVariableKeys, next) })),
|
||||||
|
|
||||||
|
setInspectionGiveVariableItemId: (next) => set({ inspectionGiveVariableItemId: next }),
|
||||||
|
setInspectionGiveValue: (next) => set({ inspectionGiveValue: next })
|
||||||
}));
|
}));
|
||||||
|
|||||||
Reference in New Issue
Block a user