27 lines
999 B
TypeScript
27 lines
999 B
TypeScript
import { useQuery, type UseQueryReturnType } from "@tanstack/vue-query";
|
|
import { type MaybeRefOrGetter, toValue } from "vue";
|
|
import type { Theme } from "@dwengo-1/interfaces/theme";
|
|
import { getThemeController } from "@/controllers/controllers.ts";
|
|
|
|
const themeController = getThemeController();
|
|
|
|
export function useThemeQuery(language: MaybeRefOrGetter<string | undefined>): UseQueryReturnType<Theme[], Error> {
|
|
return useQuery({
|
|
queryKey: ["themes", language],
|
|
queryFn: async () => {
|
|
const lang = toValue(language);
|
|
return themeController.getAll(lang);
|
|
},
|
|
enabled: () => Boolean(toValue(language)),
|
|
});
|
|
}
|
|
|
|
export function useThemeHruidsQuery(
|
|
themeKey: MaybeRefOrGetter<string | undefined>,
|
|
): UseQueryReturnType<string[], Error> {
|
|
return useQuery({
|
|
queryKey: ["theme-hruids", themeKey],
|
|
queryFn: async () => themeController.getHruidsByKey(toValue(themeKey)!),
|
|
enabled: Boolean(themeKey),
|
|
});
|
|
}
|