diff --git a/apps/nextjs/src/app/[locale]/boards/(content)/_creator.tsx b/apps/nextjs/src/app/[locale]/boards/(content)/_creator.tsx index 8cb569ca4..e04026d26 100644 --- a/apps/nextjs/src/app/[locale]/boards/(content)/_creator.tsx +++ b/apps/nextjs/src/app/[locale]/boards/(content)/_creator.tsx @@ -91,9 +91,7 @@ export const createBoardContentPage = >( const resolvedParams = await params; const boardName = getBoardName(resolvedParams); - const board = boardName - ? await getCachedBoardByName(boardName) - : await getInitialBoard(resolvedParams); + const board = boardName ? await getCachedBoardByName(boardName) : await getInitialBoard(resolvedParams); const t = await getI18n(); return { diff --git a/apps/nextjs/src/app/[locale]/boards/(content)/_header-actions.tsx b/apps/nextjs/src/app/[locale]/boards/(content)/_header-actions.tsx index f0a544428..973ac3873 100644 --- a/apps/nextjs/src/app/[locale]/boards/(content)/_header-actions.tsx +++ b/apps/nextjs/src/app/[locale]/boards/(content)/_header-actions.tsx @@ -29,8 +29,6 @@ import { showErrorNotification, showSuccessNotification } from "@homarr/notifica import { useI18n, useScopedI18n } from "@homarr/translation/client"; import { Link } from "@homarr/ui"; -import { invalidateBoardCacheAsync } from "../_invalidate-board-cache"; - import { useItemActions } from "~/components/board/items/item-actions"; import { ItemSelectModal } from "~/components/board/items/item-select-modal"; import { useBoardPermissions } from "~/components/board/permissions/client"; @@ -38,6 +36,7 @@ import { useCategoryActions } from "~/components/board/sections/category/categor import { CategoryEditModal } from "~/components/board/sections/category/category-edit-modal"; import { useDynamicSectionActions } from "~/components/board/sections/dynamic/dynamic-actions"; import { HeaderButton } from "~/components/layout/header/button"; +import { invalidateBoardCacheAsync } from "../_invalidate-board-cache"; export const BoardContentHeaderActions = () => { const [isEditMode] = useEditMode(); diff --git a/apps/nextjs/src/app/[locale]/boards/[name]/settings/_layout.tsx b/apps/nextjs/src/app/[locale]/boards/[name]/settings/_layout.tsx index a2688c5b2..ea2387ed2 100644 --- a/apps/nextjs/src/app/[locale]/boards/[name]/settings/_layout.tsx +++ b/apps/nextjs/src/app/[locale]/boards/[name]/settings/_layout.tsx @@ -8,8 +8,8 @@ import { useZodForm } from "@homarr/form"; import { useI18n } from "@homarr/translation/client"; import { boardSaveLayoutsSchema } from "@homarr/validation/board"; -import type { Board } from "../../_types"; import { invalidateBoardCacheAsync } from "../../_invalidate-board-cache"; +import type { Board } from "../../_types"; interface Props { board: Board; diff --git a/apps/nextjs/src/app/[locale]/boards/[name]/settings/_shared.tsx b/apps/nextjs/src/app/[locale]/boards/[name]/settings/_shared.tsx index 85899cc36..bd1e1aa9f 100644 --- a/apps/nextjs/src/app/[locale]/boards/[name]/settings/_shared.tsx +++ b/apps/nextjs/src/app/[locale]/boards/[name]/settings/_shared.tsx @@ -1,7 +1,7 @@ import { clientApi } from "@homarr/api/client"; -import type { Board } from "../../_types"; import { invalidateBoardCacheAsync } from "../../_invalidate-board-cache"; +import type { Board } from "../../_types"; export const useSavePartialSettingsMutation = (board: Board) => { const utils = clientApi.useUtils(); diff --git a/apps/nextjs/src/app/[locale]/boards/_cached-board.ts b/apps/nextjs/src/app/[locale]/boards/_cached-board.ts index f08b16f90..4b9176ad0 100644 --- a/apps/nextjs/src/app/[locale]/boards/_cached-board.ts +++ b/apps/nextjs/src/app/[locale]/boards/_cached-board.ts @@ -1,10 +1,9 @@ import { unstable_cache } from "next/cache"; +import { getSharedBoardWithWhereAsync } from "@homarr/api/router/board"; import { db, eq, sql } from "@homarr/db"; import { boards } from "@homarr/db/schema"; -import { getSharedBoardWithWhereAsync } from "@homarr/api/router/board"; - export function getCachedBoardByName(name: string) { const tag = `board-${name.toLowerCase()}`; return unstable_cache( diff --git a/apps/nextjs/src/app/[locale]/boards/_invalidate-board-cache.ts b/apps/nextjs/src/app/[locale]/boards/_invalidate-board-cache.ts index 11c61efbd..e10906431 100644 --- a/apps/nextjs/src/app/[locale]/boards/_invalidate-board-cache.ts +++ b/apps/nextjs/src/app/[locale]/boards/_invalidate-board-cache.ts @@ -2,7 +2,8 @@ import { revalidatePath, revalidateTag } from "next/cache"; +// eslint-disable-next-line @typescript-eslint/require-await export async function invalidateBoardCacheAsync(boardName: string) { - revalidateTag(`board-${boardName.toLowerCase()}`); + revalidateTag(`board-${boardName.toLowerCase()}`, { expire: 3600 }); revalidatePath(`/boards/${boardName}`, "page"); }