diff --git a/src/app/admin/manage/irasuto/page.tsx b/src/app/admin/manage/irasuto/page.tsx
index 9fe2aff..047e29e 100644
--- a/src/app/admin/manage/irasuto/page.tsx
+++ b/src/app/admin/manage/irasuto/page.tsx
@@ -2,6 +2,8 @@ import { Collage } from "~/components/irasuto/collage";
import { Card } from "~/components/ui/card";
import { getPhotos } from "~/lib/irasuto/get-photos";
+import { RefreshButton } from "./refresh";
+
export default async function Page() {
const photos = await getPhotos();
return (
@@ -9,6 +11,9 @@ export default async function Page() {
+
+
+
);
}
diff --git a/src/app/admin/manage/irasuto/refresh-action.ts b/src/app/admin/manage/irasuto/refresh-action.ts
new file mode 100644
index 0000000..cc49700
--- /dev/null
+++ b/src/app/admin/manage/irasuto/refresh-action.ts
@@ -0,0 +1,8 @@
+"use server";
+
+import { revalidateTag } from "next/cache";
+
+// eslint-disable-next-line @typescript-eslint/require-await -- Server actions must be async
+export async function refreshIrasuto() {
+ revalidateTag("photos");
+}
diff --git a/src/app/admin/manage/irasuto/refresh.tsx b/src/app/admin/manage/irasuto/refresh.tsx
new file mode 100644
index 0000000..3a09991
--- /dev/null
+++ b/src/app/admin/manage/irasuto/refresh.tsx
@@ -0,0 +1,17 @@
+"use client";
+
+import { RotateCcw } from "~/components/icons";
+import { Button } from "~/components/ui/button";
+import { useTransitionWithNProgress } from "~/lib/hooks/use-transition-with-nprogress";
+
+import { refreshIrasuto } from "./refresh-action";
+
+export function RefreshButton() {
+ const startTransition = useTransitionWithNProgress();
+ const refresh = () => startTransition(refreshIrasuto);
+ return (
+
+ );
+}