fix: selection issues on workflow page

This commit is contained in:
bennykok 2024-01-31 15:20:44 +08:00
parent b81fcae6fb
commit 774fd566d1

View File

@ -124,14 +124,48 @@ export function MachineSelect({
); );
} }
type SelectedMachineStore = {
selectedMachine: string | undefined;
setSelectedMachine: (machine: string) => void;
};
export const selectedMachineStore = create<SelectedMachineStore>((set) => ({
selectedMachine: undefined,
setSelectedMachine: (machine) => set(() => ({ selectedMachine: machine })),
}));
export function useSelectedMachine( export function useSelectedMachine(
machines: Awaited<ReturnType<typeof getMachines>>, machines: Awaited<ReturnType<typeof getMachines>>,
) { ): [string, (v: string) => void] {
const a = useQueryState("machine", { const { selectedMachine, setSelectedMachine } = selectedMachineStore();
defaultValue: machines?.[0]?.id ?? "", 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 = { type PublicRunStore = {