diff --git a/src/photo/actions.ts b/src/photo/actions.ts index b0c68911..eab8fee2 100644 --- a/src/photo/actions.ts +++ b/src/photo/actions.ts @@ -50,7 +50,7 @@ export async function createPhotoAction(formData: FormData) { await sqlInsertPhoto(photo); - revalidateAllKeysAndPaths(); + await revalidateAllKeysAndPaths(); redirect(PATH_ADMIN_PHOTOS); }); @@ -62,7 +62,7 @@ export async function updatePhotoAction(formData: FormData) { await sqlUpdatePhoto(photo); - revalidatePhoto(photo.id); + await revalidatePhoto(photo.id); redirect(PATH_ADMIN_PHOTOS); }); diff --git a/src/photo/cache.ts b/src/photo/cache.ts index 93f63d8a..0c2d2345 100644 --- a/src/photo/cache.ts +++ b/src/photo/cache.ts @@ -35,6 +35,7 @@ import { pathForPhoto, } from '@/site/paths'; import { cache } from 'react'; +import sleep from '@/utility/sleep'; // Table key const KEY_PHOTOS = 'photos'; @@ -107,17 +108,19 @@ export const revalidateAdminPaths = () => { PATHS_ADMIN.forEach(path => revalidatePath(path)); }; -export const revalidateAllKeysAndPaths = () => { +export const revalidateAllKeysAndPaths = async () => { revalidateAllKeys(); + await sleep(2000); PATHS_TO_CACHE.forEach(path => revalidatePath(path, 'layout')); }; -export const revalidatePhoto = (photoId: string) => { +export const revalidatePhoto = async (photoId: string) => { // Tags revalidateTag(photoId); revalidateTagsKey(); revalidateCamerasKey(); revalidateFilmSimulationsKey(); + await sleep(2000); // Paths revalidatePath(pathForPhoto(photoId), 'layout'); revalidatePath(PATH_ROOT, 'layout');