From 7ad232dbbe231d2378297c48c43a5b833909c603 Mon Sep 17 00:00:00 2001 From: Anish Sarkar <104695310+AnishSarkar22@users.noreply.github.com> Date: Sat, 27 Dec 2025 18:37:30 +0530 Subject: [PATCH] feature: added refresh button in manage documents page with translation --- .../documents/(manage)/page.tsx | 23 +++++++++++++++++-- surfsense_web/messages/en.json | 4 +++- surfsense_web/messages/zh.json | 4 +++- 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/surfsense_web/app/dashboard/[search_space_id]/documents/(manage)/page.tsx b/surfsense_web/app/dashboard/[search_space_id]/documents/(manage)/page.tsx index 065267b2e..d4c1a4578 100644 --- a/surfsense_web/app/dashboard/[search_space_id]/documents/(manage)/page.tsx +++ b/surfsense_web/app/dashboard/[search_space_id]/documents/(manage)/page.tsx @@ -2,11 +2,13 @@ import { useQuery } from "@tanstack/react-query"; import { useAtomValue } from "jotai"; +import { RefreshCw } from "lucide-react"; import { motion } from "motion/react"; import { useParams } from "next/navigation"; import { useTranslations } from "next-intl"; import { useCallback, useEffect, useId, useMemo, useState } from "react"; import { toast } from "sonner"; +import { Button } from "@/components/ui/button"; import { deleteDocumentMutationAtom } from "@/atoms/documents/document-mutation.atoms"; import { documentTypeCountsAtom } from "@/atoms/documents/document-query.atoms"; import type { DocumentTypeEnum } from "@/contracts/types/document.types"; @@ -127,7 +129,8 @@ export default function DocumentsTable() { } else { await refetchDocuments(); } - }, [debouncedSearch, refetchSearch, refetchDocuments]); + toast.success(t("refresh_success") || "Documents refreshed"); + }, [debouncedSearch, refetchSearch, refetchDocuments, t]); // Create a delete function for single document deletion const deleteDocument = useCallback( @@ -189,8 +192,24 @@ export default function DocumentsTable() { initial={{ opacity: 0, y: 20 }} animate={{ opacity: 1, y: 0 }} transition={{ duration: 0.3 }} - className="w-full px-6 py-4 min-h-[calc(100vh-64px)]" + className="w-full px-6 py-4 space-y-6 min-h-[calc(100vh-64px)]" > + +
+

{t("title")}

+

{t("subtitle")}

+
+ +
+