From 464239746eda256befdd33123c2e45278a49f545 Mon Sep 17 00:00:00 2001 From: Sam Becker Date: Sun, 3 Mar 2024 23:38:54 -0600 Subject: [PATCH] Use next/react cache on camera/photo page --- src/app/layout.tsx | 2 +- src/app/shot-on/[camera]/[photoId]/layout.tsx | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 3414fe87..e9c86059 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -15,9 +15,9 @@ import NavClient from '@/site/NavClient'; import { Metadata } from 'next/types'; import MoreComponentsProvider from '@/state/MoreComponentsProvider'; import CommandK from '@/site/CommandK'; +import CommandKClient from '@/components/CommandKClient'; import '../site/globals.css'; -import CommandKClient from '@/components/CommandKClient'; const ibmPlexMono = IBM_Plex_Mono({ subsets: ['latin'], diff --git a/src/app/shot-on/[camera]/[photoId]/layout.tsx b/src/app/shot-on/[camera]/[photoId]/layout.tsx index e102256d..c4508a7c 100644 --- a/src/app/shot-on/[camera]/[photoId]/layout.tsx +++ b/src/app/shot-on/[camera]/[photoId]/layout.tsx @@ -13,7 +13,10 @@ import PhotoDetailPage from '@/photo/PhotoDetailPage'; import { getPhotoCached } from '@/photo/cache'; import { cameraFromPhoto } from '@/camera'; import { getPhotosCameraDataCached } from '@/camera/data'; -import { ReactNode } from 'react'; +import { ReactNode, cache } from 'react'; + +const getPhotoCachedCached = + cache((photoId: string) => getPhotoCached(photoId)); interface PhotoCameraProps { params: { photoId: string, camera: string } @@ -22,7 +25,7 @@ interface PhotoCameraProps { export async function generateMetadata({ params: { photoId, camera }, }: PhotoCameraProps): Promise { - const photo = await getPhotoCached(photoId); + const photo = await getPhotoCachedCached(photoId); if (!photo) { return {}; } @@ -57,7 +60,7 @@ export default async function PhotoCameraPage({ params: { photoId, camera: cameraProp }, children, }: PhotoCameraProps & { children: ReactNode }) { - const photo = await getPhotoCached(photoId); + const photo = await getPhotoCachedCached(photoId); if (!photo) { redirect(PATH_ROOT); }