feat(20-01): extend UIStore with FAB/catalog state, add useTags hook, update useGlobalItems
- Add fabMenuOpen, openFabMenu, closeFabMenu to UIStore - Add catalogSearchOpen, catalogSearchMode, openCatalogSearch, closeCatalogSearch - openCatalogSearch also closes FAB menu (natural flow) - Create useTags hook with 5-min staleTime cache - Add optional tags parameter to useGlobalItems for tag filtering
This commit is contained in:
@@ -56,6 +56,17 @@ interface UIState {
|
||||
// Setup impact preview
|
||||
selectedSetupId: number | null;
|
||||
setSelectedSetupId: (id: number | null) => void;
|
||||
|
||||
// FAB menu
|
||||
fabMenuOpen: boolean;
|
||||
openFabMenu: () => void;
|
||||
closeFabMenu: () => void;
|
||||
|
||||
// Catalog search overlay
|
||||
catalogSearchOpen: boolean;
|
||||
catalogSearchMode: "collection" | "thread" | null;
|
||||
openCatalogSearch: (mode: "collection" | "thread") => void;
|
||||
closeCatalogSearch: () => void;
|
||||
}
|
||||
|
||||
export const useUIStore = create<UIState>((set) => ({
|
||||
@@ -119,4 +130,21 @@ export const useUIStore = create<UIState>((set) => ({
|
||||
// Setup impact preview
|
||||
selectedSetupId: null,
|
||||
setSelectedSetupId: (id) => set({ selectedSetupId: id }),
|
||||
|
||||
// FAB menu
|
||||
fabMenuOpen: false,
|
||||
openFabMenu: () => set({ fabMenuOpen: true }),
|
||||
closeFabMenu: () => set({ fabMenuOpen: false }),
|
||||
|
||||
// Catalog search overlay
|
||||
catalogSearchOpen: false,
|
||||
catalogSearchMode: null,
|
||||
openCatalogSearch: (mode) =>
|
||||
set({
|
||||
catalogSearchOpen: true,
|
||||
catalogSearchMode: mode,
|
||||
fabMenuOpen: false,
|
||||
}),
|
||||
closeCatalogSearch: () =>
|
||||
set({ catalogSearchOpen: false, catalogSearchMode: null }),
|
||||
}));
|
||||
|
||||
Reference in New Issue
Block a user