mirror of
https://github.com/aljazceru/claude-code-viewer.git
synced 2026-01-06 15:14:21 +01:00
42 lines
1.0 KiB
TypeScript
42 lines
1.0 KiB
TypeScript
import {
|
|
useMutation,
|
|
useQueryClient,
|
|
useSuspenseQuery,
|
|
} from "@tanstack/react-query";
|
|
import { useCallback } from "react";
|
|
import { honoClient } from "../../lib/api/client";
|
|
import { configQuery } from "../../lib/api/queries";
|
|
import type { Config } from "../../server/config/config";
|
|
|
|
export const useConfig = () => {
|
|
const queryClient = useQueryClient();
|
|
|
|
const { data } = useSuspenseQuery({
|
|
queryKey: configQuery.queryKey,
|
|
queryFn: configQuery.queryFn,
|
|
});
|
|
const updateConfigMutation = useMutation({
|
|
mutationFn: async (config: Config) => {
|
|
const response = await honoClient.api.config.$put({
|
|
json: config,
|
|
});
|
|
return await response.json();
|
|
},
|
|
onSuccess: async () => {
|
|
await queryClient.invalidateQueries({
|
|
queryKey: configQuery.queryKey,
|
|
});
|
|
},
|
|
});
|
|
|
|
return {
|
|
config: data?.config,
|
|
updateConfig: useCallback(
|
|
(config: Config) => {
|
|
updateConfigMutation.mutate(config);
|
|
},
|
|
[updateConfigMutation],
|
|
),
|
|
} as const;
|
|
};
|