From 774fd566d1f983cbe406c7df7c67630ceeaba82b Mon Sep 17 00:00:00 2001 From: bennykok Date: Wed, 31 Jan 2024 15:20:44 +0800 Subject: [PATCH] fix: selection issues on workflow page --- web/src/components/VersionSelect.tsx | 44 ++++++++++++++++++++++++---- 1 file changed, 39 insertions(+), 5 deletions(-) diff --git a/web/src/components/VersionSelect.tsx b/web/src/components/VersionSelect.tsx index 1ac739b..e5569e6 100644 --- a/web/src/components/VersionSelect.tsx +++ b/web/src/components/VersionSelect.tsx @@ -124,14 +124,48 @@ export function MachineSelect({ ); } +type SelectedMachineStore = { + selectedMachine: string | undefined; + setSelectedMachine: (machine: string) => void; +}; + +export const selectedMachineStore = create((set) => ({ + selectedMachine: undefined, + setSelectedMachine: (machine) => set(() => ({ selectedMachine: machine })), +})); + export function useSelectedMachine( machines: Awaited>, -) { - const a = useQueryState("machine", { - defaultValue: machines?.[0]?.id ?? "", - }); +): [string, (v: string) => void] { + const { selectedMachine, setSelectedMachine } = selectedMachineStore(); + return [selectedMachine ?? machines?.[0]?.id ?? "", setSelectedMachine]; - return a; + // const searchParams = useSearchParams(); + // const pathname = usePathname(); + // const router = useRouter(); + + // const createQueryString = useCallback( + // (name: string, value: string) => { + // const params = new URLSearchParams(searchParams.toString()); + // params.set(name, value); + + // return params.toString(); + // }, + // [searchParams], + // ); + + // return [ + // searchParams.get("machine") ?? machines?.[0]?.id ?? "", + // (v: string) => { + // // window.history.pushState( + // // "new url", + // // "", + // // pathname + "?" + createQueryString("machine", v), + // // ); + // // router.push(pathname + "?" + createQueryString("machine", v)); + // router.replace(pathname + "?" + createQueryString("machine", v)); + // }, + // ]; } type PublicRunStore = {