feat: revalidate my pages breadcrumbs on demand

This commit is contained in:
Simon Emanuelsson
2024-04-16 12:42:44 +02:00
committed by Michael Zetterberg
parent ba13a00b63
commit 0c4aa592cc
24 changed files with 322 additions and 57 deletions

View File

@@ -11,6 +11,7 @@ import {
generateTag,
generateTags,
} from "@/utils/generateTag"
import { removeMultipleSlashes } from "@/utils/url"
import { getNavigationInputSchema } from "./input"
import {
@@ -35,7 +36,7 @@ export function mapMenuItems(navigationItems: NavigationItem[]) {
lang: node.system.locale,
linkText: item.link_text || node.title,
uid: node.system.uid,
url: `/${node.system.locale}/${node.url}`.replaceAll(/\/\/+/g, "/"),
url: removeMultipleSlashes(`/${node.system.locale}/${node.url}`),
}
if ("sub_items" in item) {
@@ -54,12 +55,16 @@ export const navigationQueryRouter = router({
const refsResponse = await request<GetNavigationMyPagesRefsData>(
GetNavigationMyPagesRefs,
{ locale: lang },
{ tags: [generateRefsResponseTag(lang, "navigation_my_pages")] }
{
next: {
tags: [generateRefsResponseTag(lang, "navigation_my_pages")],
},
}
)
if (!refsResponse.data) {
console.error("Bad response for `GetNavigationMyPagesRefs`")
console.error(refsResponse)
console.error({ refsResponse })
throw internalServerError()
}
@@ -80,12 +85,13 @@ export const navigationQueryRouter = router({
const response = await request<GetNavigationMyPagesData>(
GetNavigationMyPages,
{ locale: lang },
{ tags }
{ next: { tags } }
)
if (!response.data) {
console.error("Bad response for `GetNavigationMyPages`")
console.error(response)
console.error({ input: lang })
console.error({ response })
throw internalServerError()
}