diff --git a/apps/cs/src/pages/banner/model/banner-table-columns.tsx b/apps/cs/src/pages/banner/model/banner-table-columns.tsx index 2468821f4..3d993f766 100644 --- a/apps/cs/src/pages/banner/model/banner-table-columns.tsx +++ b/apps/cs/src/pages/banner/model/banner-table-columns.tsx @@ -2,11 +2,12 @@ import dayjs from "dayjs"; import Image from "next/image"; +import { useQuery } from "@tanstack/react-query"; import type { ColumnDef } from "@tanstack/react-table"; -import { Checkbox } from "@common/components/ui"; +import { Checkbox, Skeleton } from "@common/components/ui"; import { AttachmentApi } from "@/entities/attachment"; +import { ENDPOINT } from "@/shared/config"; import type { Banner } from "./banner-interface"; -import { useEffect, useState } from "react"; export const columns: ColumnDef[] = [ { @@ -61,13 +62,13 @@ export const columns: ColumnDef[] = [ ]; const BannerImage = ({ atflCd }: { atflCd: string }) => { - const [imageUrl, setImageUrl] = useState(""); + const { data: imageUrl, isLoading } = useQuery({ + queryKey: [ENDPOINT.ATTACH_SERVICE.IMAGES, atflCd], + queryFn: () => AttachmentApi.getImageUrlByAtflCd(atflCd), + enabled: !!atflCd, + }); - useEffect(() => { - (async () => { - setImageUrl(await AttachmentApi.getImageUrlByAtflCd(atflCd)); - })(); - }, [atflCd]); + if (isLoading) return ; if (!imageUrl) return null; diff --git a/packages/common/components/src/ui/index.ts b/packages/common/components/src/ui/index.ts index 4ff471de1..bea09fa74 100644 --- a/packages/common/components/src/ui/index.ts +++ b/packages/common/components/src/ui/index.ts @@ -20,6 +20,7 @@ export * from "./progress"; export * from "./radio-group"; export * from "./select"; export * from "./slider"; +export * from "./skeleton"; export * from "./switch"; export * from "./table"; export * from "./tabs";