diff --git a/src/pages/catalogue/List.tsx b/src/pages/catalogue/List.tsx
index 21288a5..0792829 100644
--- a/src/pages/catalogue/List.tsx
+++ b/src/pages/catalogue/List.tsx
@@ -1,16 +1,15 @@
-import { type FC } from 'react'
-import { useGetCatalog } from '../home/hooks/useHomeData'
-import GridWrapper from '@/components/GridWrapper'
-import CatalogueItem from './components/CatalogueItem'
-import ButtonAddCatalogue from './components/ButtonAddCatalogue'
+import GridWrapper from "@/components/GridWrapper";
+import { type FC } from "react";
+import { useGetCatalog } from "../home/hooks/useHomeData";
+import ButtonAddCatalogue from "./components/ButtonAddCatalogue";
+import CatalogueItem from "./components/CatalogueItem";
const CatalogueList: FC = () => {
+ const { data, refetch } = useGetCatalog();
- const { data, refetch } = useGetCatalog()
-
- return (
-
- {/* {
+ return (
+
+ {/* {
!isPending && !data?.data?.length &&
@@ -24,18 +23,14 @@ const CatalogueList: FC = () => {
} */}
-
- {
- data?.data?.map((item) => {
- return (
-
- )
- })
- }
-
-
-
- )
-}
+
+ {data?.data?.map((item) => {
+ return ;
+ })}
+
+
+
+ );
+};
-export default CatalogueList
\ No newline at end of file
+export default CatalogueList;
diff --git a/src/pages/catalogue/components/CatalogueItem.tsx b/src/pages/catalogue/components/CatalogueItem.tsx
index 7b4489f..52d9955 100644
--- a/src/pages/catalogue/components/CatalogueItem.tsx
+++ b/src/pages/catalogue/components/CatalogueItem.tsx
@@ -1,103 +1,103 @@
-import { type FC } from 'react'
-import { Edit, Eye, Share } from 'iconsax-react'
-import type { CatalogItemType } from '../types/Types'
-import moment from 'moment-jalaali'
-import { Link } from 'react-router-dom'
-import { Paths } from '@/config/Paths'
-import CatalogPreview from './CatalogPreview'
-import TrashWithConfrim from '@/components/TrashWithConfrim'
-import { useDleteCatalog } from '@/pages/home/hooks/useHomeData'
-import { toast } from '@/components/Toast'
-import { extractErrorMessage } from '@/helpers/utils'
-import { requestViewerFullscreen } from '@/pages/viewer/utils/viewerFullscreen'
+import { toast } from "@/components/Toast";
+import TrashWithConfrim from "@/components/TrashWithConfrim";
+import { Paths } from "@/config/Paths";
+import { extractErrorMessage } from "@/helpers/utils";
+import { useDleteCatalog } from "@/pages/home/hooks/useHomeData";
+import { requestViewerFullscreen } from "@/pages/viewer/utils/viewerFullscreen";
+import { Edit, Eye, Share } from "iconsax-react";
+import moment from "moment-jalaali";
+import { type FC } from "react";
+import { Link } from "react-router-dom";
+import type { CatalogItemType } from "../types/Types";
+import CatalogPreview from "./CatalogPreview";
type Props = {
- item: CatalogItemType,
- refetch: () => void,
-}
+ item: CatalogItemType;
+ refetch: () => void;
+};
const CatalogueItem: FC
= ({ item, refetch }) => {
+ const deleteCatalog = useDleteCatalog();
- const deleteCatalog = useDleteCatalog()
+ const shareUrl = `${window.location.origin}${Paths.viewer}/${item.id}`;
- const shareUrl = `${window.location.origin}${Paths.viewer}/${item.id}`
-
- const handleShare = async () => {
- try {
- if (typeof navigator.share === 'function') {
- await navigator.share({
- title: item.name,
- text: item.name,
- url: shareUrl,
- })
- return
- }
- await navigator.clipboard.writeText(shareUrl)
- toast('لینک در کلیپبورد کپی شد', 'success')
- } catch (err) {
- const isAbort =
- err instanceof DOMException
- ? err.name === 'AbortError'
- : err instanceof Error && err.name === 'AbortError'
- if (isAbort) return
- toast(extractErrorMessage(err, 'امکان اشتراکگذاری وجود ندارد'), 'error')
- }
+ const handleShare = async () => {
+ try {
+ if (typeof navigator.share === "function") {
+ await navigator.share({
+ title: item.name,
+ text: item.name,
+ url: shareUrl,
+ });
+ return;
+ }
+ await navigator.clipboard.writeText(shareUrl);
+ toast("لینک در کلیپبورد کپی شد", "success");
+ } catch (err) {
+ const isAbort =
+ err instanceof DOMException
+ ? err.name === "AbortError"
+ : err instanceof Error && err.name === "AbortError";
+ if (isAbort) return;
+ toast(extractErrorMessage(err, "امکان اشتراکگذاری وجود ندارد"), "error");
}
+ };
- const handleDelete = () => {
- deleteCatalog.mutate(item.id, {
- onSuccess: () => {
- toast('با موفقیت حذف شد', 'success')
- refetch()
- },
- onError: (error) => {
- toast(extractErrorMessage(error, 'error'))
- }
- })
- }
+ const handleDelete = () => {
+ deleteCatalog.mutate(item.id, {
+ onSuccess: () => {
+ toast("با موفقیت حذف شد", "success");
+ refetch();
+ },
+ onError: (error) => {
+ toast(extractErrorMessage(error, "error"));
+ },
+ });
+ };
- return (
-
-
-
-
-
- {item.name}
-
-
- {moment(item.createdAt).format('jYYYY/jMM/jDD')}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ return (
+
+
+
+
+
{item.name}
+
+ {moment(item.createdAt).format("jYYYY/jMM/jDD")}
+
- )
-}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+};
-export default CatalogueItem
\ No newline at end of file
+export default CatalogueItem;
diff --git a/src/pages/catalogue/types/Types.ts b/src/pages/catalogue/types/Types.ts
index c36b713..6687c6b 100644
--- a/src/pages/catalogue/types/Types.ts
+++ b/src/pages/catalogue/types/Types.ts
@@ -7,6 +7,7 @@ export type CatalogItemType = {
size: string;
status: string;
createdAt: string;
+ slug: string;
};
export type CatalogResponseType = BaseResponse
;
diff --git a/src/pages/home/service/HomeService.ts b/src/pages/home/service/HomeService.ts
index 8a61137..e8a5fc4 100644
--- a/src/pages/home/service/HomeService.ts
+++ b/src/pages/home/service/HomeService.ts
@@ -20,7 +20,7 @@ export const getCatalogs = async () => {
export const getCatalogById = async (id: string) => {
const { data } = await axios.get(
- `/public/catalogue/${id}`,
+ `/public/catalogue/slug/${id}`,
);
return data;
};