From 966a3ee9197db2732b5023016fe64a685e901caf Mon Sep 17 00:00:00 2001 From: Johannes Kirschbauer Date: Sat, 9 Aug 2025 13:50:03 +0200 Subject: [PATCH] UI/queries: init generators query --- pkgs/clan-app/ui/src/hooks/queries.ts | 36 +++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/pkgs/clan-app/ui/src/hooks/queries.ts b/pkgs/clan-app/ui/src/hooks/queries.ts index 22042ba33..49b9d97c1 100644 --- a/pkgs/clan-app/ui/src/hooks/queries.ts +++ b/pkgs/clan-app/ui/src/hooks/queries.ts @@ -260,3 +260,39 @@ export const useMachineDiskSchemas = ( }, })); }; + +export type MachineGenerators = SuccessData<"get_generators">; +export type MachineGeneratorsQuery = UseQueryResult; + +export const useMachineGenerators = ( + clanUri: string, + machineName: string, +): MachineGeneratorsQuery => { + const client = useApiClient(); + return useQuery(() => ({ + queryKey: [ + "clans", + encodeBase64(clanUri), + "machines", + machineName, + "generators", + ], + queryFn: async () => { + const call = client.fetch("get_generators", { + base_dir: clanUri, + machine_name: machineName, + // TODO: Make this configurable + include_previous_values: true, + }); + const result = await call.result; + + if (result.status === "error") { + // todo should we create some specific error types? + console.error("Error fetching clan details:", result.errors); + throw new Error(result.errors[0].message); + } + + return result.data; + }, + })); +};