fix: machine selection might revert when being refreshed
This commit is contained in:
parent
24e95a1954
commit
1bf3c1dcd0
@ -50,7 +50,7 @@ import {
|
|||||||
Play,
|
Play,
|
||||||
} from "lucide-react";
|
} from "lucide-react";
|
||||||
import { parseAsInteger, useQueryState } from "next-usequerystate";
|
import { parseAsInteger, useQueryState } from "next-usequerystate";
|
||||||
import { useEffect, useMemo, useState } from "react";
|
import { useCallback, useEffect, useMemo, useState } from "react";
|
||||||
import { toast } from "sonner";
|
import { toast } from "sonner";
|
||||||
import useSWR from "swr";
|
import useSWR from "swr";
|
||||||
import type { z } from "zod";
|
import type { z } from "zod";
|
||||||
@ -60,6 +60,7 @@ import { callServerPromise } from "./callServerPromise";
|
|||||||
import fetcher from "./fetcher";
|
import fetcher from "./fetcher";
|
||||||
import { ButtonAction } from "@/components/ButtonActionLoader";
|
import { ButtonAction } from "@/components/ButtonActionLoader";
|
||||||
import { editWorkflowOnMachine } from "@/server/editWorkflowOnMachine";
|
import { editWorkflowOnMachine } from "@/server/editWorkflowOnMachine";
|
||||||
|
import { usePathname, useRouter, useSearchParams } from "next/navigation";
|
||||||
|
|
||||||
export function VersionSelect({
|
export function VersionSelect({
|
||||||
workflow,
|
workflow,
|
||||||
@ -126,12 +127,27 @@ export function MachineSelect({
|
|||||||
|
|
||||||
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 searchParams = useSearchParams();
|
||||||
defaultValue: machines?.[0]?.id ?? "",
|
const pathname = usePathname();
|
||||||
});
|
const router = useRouter();
|
||||||
|
|
||||||
return a;
|
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) => {
|
||||||
|
router.push(pathname + "?" + createQueryString("machine", v));
|
||||||
|
},
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
type PublicRunStore = {
|
type PublicRunStore = {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user