From 04da87b7d7a555d4b2102d75387bbe8ce9884290 Mon Sep 17 00:00:00 2001 From: hamid zarghami Date: Mon, 1 Jun 2026 14:09:51 +0330 Subject: [PATCH] fix update --- src/pages/catalogue/components/CatalogueItem.tsx | 2 +- src/pages/home/hooks/useHomeData.ts | 16 ++++++++++++++-- src/pages/home/service/HomeService.ts | 9 ++++++++- src/pages/viewer/Viewer.tsx | 4 ++-- 4 files changed, 25 insertions(+), 6 deletions(-) diff --git a/src/pages/catalogue/components/CatalogueItem.tsx b/src/pages/catalogue/components/CatalogueItem.tsx index 52d9955..3b0270c 100644 --- a/src/pages/catalogue/components/CatalogueItem.tsx +++ b/src/pages/catalogue/components/CatalogueItem.tsx @@ -75,7 +75,7 @@ const CatalogueItem: FC = ({ item, refetch }) => { - +
diff --git a/src/pages/home/hooks/useHomeData.ts b/src/pages/home/hooks/useHomeData.ts index c9183fd..8e1cb71 100644 --- a/src/pages/home/hooks/useHomeData.ts +++ b/src/pages/home/hooks/useHomeData.ts @@ -1,6 +1,6 @@ -import * as api from "../service/HomeService"; import { useMutation, useQuery } from "@tanstack/react-query"; import { useCallback, useEffect, useRef, useState } from "react"; +import * as api from "../service/HomeService"; export const useCreateCatalog = () => { return useMutation({ @@ -31,6 +31,16 @@ export const useGetCatalogById = (id: string) => { staleTime: 5 * 60 * 1000, }); }; +export const useGetCatalogBySlug = (slug: string) => { + return useQuery({ + queryKey: ["catalog", slug], + queryFn: () => api.getCatalogBySlug(slug), + enabled: !!slug, + // جلوگیری از بازنویسی state محلی با refetch هنگام فوکوس پنجره (مثلاً دو کاربر همزمان) + refetchOnWindowFocus: false, + staleTime: 5 * 60 * 1000, + }); +}; export const useUpdateCatalog = () => { const mutation = useMutation({ @@ -38,7 +48,9 @@ export const useUpdateCatalog = () => { }); const timeoutRef = useRef | null>(null); - const pendingParamsRef = useRef[0] | null>(null); + const pendingParamsRef = useRef< + Parameters[0] | null + >(null); const [isScheduledSaving, setIsScheduledSaving] = useState(false); const cancelPendingUpdate = useCallback(() => { diff --git a/src/pages/home/service/HomeService.ts b/src/pages/home/service/HomeService.ts index e8a5fc4..ddbf633 100644 --- a/src/pages/home/service/HomeService.ts +++ b/src/pages/home/service/HomeService.ts @@ -20,7 +20,14 @@ export const getCatalogs = async () => { export const getCatalogById = async (id: string) => { const { data } = await axios.get( - `/public/catalogue/slug/${id}`, + `/admin/catalogue/${id}`, + ); + return data; +}; + +export const getCatalogBySlug = async (slug: string) => { + const { data } = await axios.get( + `/public/catalogue/slug/${slug}`, ); return data; }; diff --git a/src/pages/viewer/Viewer.tsx b/src/pages/viewer/Viewer.tsx index 5834de9..8f9ad1f 100644 --- a/src/pages/viewer/Viewer.tsx +++ b/src/pages/viewer/Viewer.tsx @@ -1,6 +1,6 @@ import { usePageTitle } from "@/hooks/usePageTitle"; import type { DocumentSettings } from "@/pages/editor/store/editorStore"; -import { useGetCatalogById } from "@/pages/home/hooks/useHomeData"; +import { useGetCatalogBySlug } from "@/pages/home/hooks/useHomeData"; import { type FC, useEffect, useState } from "react"; import { useParams } from "react-router-dom"; import BookViewer from "./components/BookViewer"; @@ -12,7 +12,7 @@ import { transformViewerDataToPages } from "./utils/dataTransformer"; const Viewer: FC = () => { const { id } = useParams<{ id: string }>(); - const { data, isLoading, error: queryError } = useGetCatalogById(id ?? ""); + const { data, isLoading, error: queryError } = useGetCatalogBySlug(id ?? ""); usePageTitle(`کاتالوگ ${data?.data?.name}`); const [pages, setPages] = useState([]); const [documentSettings, setDocumentSettings] = useState<