Files
seanime-docker/seanime-2.9.10/seanime-web/src/api/hooks/theme.hooks.ts
2025-09-20 14:08:38 +01:00

31 lines
1.1 KiB
TypeScript

import { useServerMutation, useServerQuery } from "@/api/client/requests"
import { UpdateTheme_Variables } from "@/api/generated/endpoint.types"
import { API_ENDPOINTS } from "@/api/generated/endpoints"
import { Models_Theme } from "@/api/generated/types"
import { useQueryClient } from "@tanstack/react-query"
import { toast } from "sonner"
export function useGetTheme() {
return useServerQuery<Models_Theme>({
endpoint: API_ENDPOINTS.THEME.GetTheme.endpoint,
method: API_ENDPOINTS.THEME.GetTheme.methods[0],
queryKey: [API_ENDPOINTS.THEME.GetTheme.key],
enabled: true,
})
}
export function useUpdateTheme() {
const queryClient = useQueryClient()
return useServerMutation<Models_Theme, UpdateTheme_Variables>({
endpoint: API_ENDPOINTS.THEME.UpdateTheme.endpoint,
method: API_ENDPOINTS.THEME.UpdateTheme.methods[0],
mutationKey: [API_ENDPOINTS.THEME.UpdateTheme.key],
onSuccess: async () => {
await queryClient.invalidateQueries({ queryKey: [API_ENDPOINTS.STATUS.GetStatus.key] })
toast.success("UI settings saved")
},
})
}