feat(03-02): navigation restructure, TotalsBar refactor, and setup hooks
- Move collection view from / to /collection with gear/planning tabs - Rewrite / as dashboard with three summary cards (Collection, Planning, Setups) - Refactor TotalsBar to accept optional stats/linkTo/title props - Create DashboardCard component for dashboard summary cards - Create useSetups hooks (CRUD + sync/remove item mutations) - Update __root.tsx with route-aware TotalsBar, FAB visibility, resolve navigation - Add item picker and setup delete UI state to uiStore - Invalidate setups queries on item update/delete for stale data prevention - Update routeTree.gen.ts with new collection/setups routes Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -29,6 +29,15 @@ interface UIState {
|
||||
|
||||
openResolveDialog: (threadId: number, candidateId: number) => void;
|
||||
closeResolveDialog: () => void;
|
||||
|
||||
// Setup-related UI state
|
||||
itemPickerOpen: boolean;
|
||||
openItemPicker: () => void;
|
||||
closeItemPicker: () => void;
|
||||
|
||||
confirmDeleteSetupId: number | null;
|
||||
openConfirmDeleteSetup: (id: number) => void;
|
||||
closeConfirmDeleteSetup: () => void;
|
||||
}
|
||||
|
||||
export const useUIStore = create<UIState>((set) => ({
|
||||
@@ -67,4 +76,13 @@ export const useUIStore = create<UIState>((set) => ({
|
||||
set({ resolveThreadId: threadId, resolveCandidateId: candidateId }),
|
||||
closeResolveDialog: () =>
|
||||
set({ resolveThreadId: null, resolveCandidateId: null }),
|
||||
|
||||
// Setup-related UI state
|
||||
itemPickerOpen: false,
|
||||
openItemPicker: () => set({ itemPickerOpen: true }),
|
||||
closeItemPicker: () => set({ itemPickerOpen: false }),
|
||||
|
||||
confirmDeleteSetupId: null,
|
||||
openConfirmDeleteSetup: (id) => set({ confirmDeleteSetupId: id }),
|
||||
closeConfirmDeleteSetup: () => set({ confirmDeleteSetupId: null }),
|
||||
}));
|
||||
|
||||
Reference in New Issue
Block a user