From 83bf21b9475938aa68bdc0f31d73404c45e4d2f9 Mon Sep 17 00:00:00 2001 From: Michael Genson <71845777+michael-genson@users.noreply.github.com> Date: Mon, 29 Sep 2025 10:33:18 -0500 Subject: [PATCH] fix: Restore recipe meta for non-logged-in users (#6286) --- frontend/pages/g/[groupSlug]/r/[slug]/index.vue | 14 +++++++++++--- frontend/pages/g/[groupSlug]/shared/r/[id].vue | 2 +- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/frontend/pages/g/[groupSlug]/r/[slug]/index.vue b/frontend/pages/g/[groupSlug]/r/[slug]/index.vue index 211765e59..e956e0720 100644 --- a/frontend/pages/g/[groupSlug]/r/[slug]/index.vue +++ b/frontend/pages/g/[groupSlug]/r/[slug]/index.vue @@ -19,20 +19,21 @@ import type { Recipe } from "~/lib/api/types/recipe"; const $auth = useMealieAuth(); const { isOwnGroup } = useLoggedInState(); const route = useRoute(); -const title = ref(route.meta?.title ?? ""); +const title = ref(route.meta?.title as string || ""); useSeoMeta({ title }); const router = useRouter(); const slug = route.params.slug as string; const recipe = ref(null); -if (isOwnGroup.value) { +function loadRecipe() { const { recipe: data } = useRecipe(slug); watch(data, (value) => { recipe.value = value; }); } -else { + +async function loadPublicRecipe() { const groupSlug = computed(() => route.params.groupSlug as string || $auth.user.value?.groupSlug || ""); const api = usePublicExploreApi(groupSlug.value); const { data } = await useAsyncData(useAsyncKey(), async () => { @@ -47,6 +48,13 @@ else { recipe.value = data.value; } +if (isOwnGroup.value) { + loadRecipe(); +} +else { + onMounted(loadPublicRecipe); +} + whenever( () => recipe.value, () => { diff --git a/frontend/pages/g/[groupSlug]/shared/r/[id].vue b/frontend/pages/g/[groupSlug]/shared/r/[id].vue index b610439e7..6aabafde7 100644 --- a/frontend/pages/g/[groupSlug]/shared/r/[id].vue +++ b/frontend/pages/g/[groupSlug]/shared/r/[id].vue @@ -25,7 +25,7 @@ const router = useRouter(); const recipeId = route.params.id as string; const api = usePublicApi(); -const title = ref(route.meta?.title ?? ""); +const title = ref(route.meta?.title as string ?? ""); useSeoMeta({ title, });