File size: 513 Bytes
88c4c60 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | /**
* Header Search Store — Zustand-based reusable search input in Header.
* Pages register placeholder on mount, read query, unregister on unmount.
*/
import { create } from "zustand";
export const useHeaderSearchStore = create((set) => ({
query: "",
placeholder: "",
visible: false,
setQuery: (query) => set({ query }),
register: (placeholder = "Search...") =>
set({ visible: true, placeholder, query: "" }),
unregister: () => set({ visible: false, placeholder: "", query: "" }),
}));
|