diff --git a/frontend/components/Layout/DefaultLayout.vue b/frontend/components/Layout/DefaultLayout.vue index c4db3a55f..75b448895 100644 --- a/frontend/components/Layout/DefaultLayout.vue +++ b/frontend/components/Layout/DefaultLayout.vue @@ -119,8 +119,8 @@ import { useLoggedInState } from "~/composables/use-logged-in-state"; import type { SideBarLink } from "~/types/application-types"; import { useAppInfo } from "~/composables/api"; -import { useCookbooks, usePublicCookbooks } from "~/composables/use-group-cookbooks"; import { useCookbookPreferences } from "~/composables/use-users/preferences"; +import { useCookbookStore, usePublicCookbookStore } from "~/composables/store/use-cookbook-store"; import { useHouseholdStore, usePublicHouseholdStore } from "~/composables/store/use-household-store"; import { useToggleDarkMode } from "~/composables/use-utils"; import type { ReadCookBook } from "~/lib/api/types/cookbook"; @@ -136,9 +136,9 @@ export default defineNuxtComponent({ const isAdmin = computed(() => $auth.user.value?.admin); const route = useRoute(); const groupSlug = computed(() => route.params.groupSlug as string || $auth.user.value?.groupSlug || ""); - const { cookbooks } = isOwnGroup.value ? useCookbooks() : usePublicCookbooks(groupSlug.value || ""); const cookbookPreferences = useCookbookPreferences(); + const { store: cookbooks } = isOwnGroup.value ? useCookbookStore() : usePublicCookbookStore(groupSlug.value || ""); const { store: households } = isOwnGroup.value ? useHouseholdStore() : usePublicHouseholdStore(groupSlug.value || ""); const householdsById = computed(() => { diff --git a/frontend/composables/store/use-cookbook-store.ts b/frontend/composables/store/use-cookbook-store.ts new file mode 100644 index 000000000..cbcfb6d36 --- /dev/null +++ b/frontend/composables/store/use-cookbook-store.ts @@ -0,0 +1,17 @@ +import { useReadOnlyStore } from "../partials/use-store-factory"; +import { usePublicExploreApi, useUserApi } from "~/composables/api"; +import type { RecipeCookBook } from "~/lib/api/types/cookbook"; + +const store: Ref = ref([]); +const loading = ref(false); +const publicLoading = ref(false); + +export const useCookbookStore = function () { + const api = useUserApi(); + return useReadOnlyStore(store, loading, api.cookbooks); +}; + +export const usePublicCookbookStore = function (groupSlug: string) { + const api = usePublicExploreApi(groupSlug).explore; + return useReadOnlyStore(store, publicLoading, api.cookbooks); +};