diff --git a/components/skeleton/LinkCardSkeleton.tsx b/components/skeleton/LinkCardSkeleton.tsx new file mode 100644 index 0000000..30506a7 --- /dev/null +++ b/components/skeleton/LinkCardSkeleton.tsx @@ -0,0 +1,15 @@ +import Skeleton from "react-loading-skeleton"; +import "react-loading-skeleton/dist/skeleton.css"; + +const LinkCardSkeleton = () => { + return ( +
+ + + + +
+ ); +}; + +export default LinkCardSkeleton; diff --git a/lib/api/axiosInstanceApi.ts b/lib/api/axiosInstanceApi.ts index 9c7b8b1..4497699 100644 --- a/lib/api/axiosInstanceApi.ts +++ b/lib/api/axiosInstanceApi.ts @@ -5,7 +5,8 @@ const axiosInstance = axios.create({ }); export const proxy = axios.create({ - baseURL: "https://linkbrary-9-99.vercel.app", + //baseURL: "https://linkbrary-9-99.vercel.app", + baseURL: "http://localhost:3000", }); proxy.interceptors.response.use( diff --git a/package-lock.json b/package-lock.json index 5f077b1..2dd2b7b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,6 +17,7 @@ "react-dom": "^18.2.0", "react-hot-toast": "^2.4.1", "react-icons": "^5.3.0", + "react-loading-skeleton": "^3.5.0", "react-spinners": "^0.14.1", "zustand": "^5.0.1" }, @@ -4763,6 +4764,15 @@ "dev": true, "license": "MIT" }, + "node_modules/react-loading-skeleton": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/react-loading-skeleton/-/react-loading-skeleton-3.5.0.tgz", + "integrity": "sha512-gxxSyLbrEAdXTKgfbpBEFZCO/P153DnqSCQau2+o6lNy1jgMRr2MmRmOzMmyrwSaSYLRB8g7b0waYPmUjz7IhQ==", + "license": "MIT", + "peerDependencies": { + "react": ">=16.8.0" + } + }, "node_modules/react-spinners": { "version": "0.14.1", "resolved": "https://registry.npmjs.org/react-spinners/-/react-spinners-0.14.1.tgz", diff --git a/package.json b/package.json index b92faf0..ba1a948 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "react-dom": "^18.2.0", "react-hot-toast": "^2.4.1", "react-icons": "^5.3.0", + "react-loading-skeleton": "^3.5.0", "react-spinners": "^0.14.1", "zustand": "^5.0.1" }, diff --git a/pages/favorite/index.tsx b/pages/favorite/index.tsx index 59c3652..b62fdf0 100644 --- a/pages/favorite/index.tsx +++ b/pages/favorite/index.tsx @@ -8,8 +8,8 @@ import Container from "@/components/Layout/Container"; import LinkCard from "@/components/Link/LinkCard"; import Pagination from "@/components/Pagination"; import useFetchLinks from "@/hooks/useFetchLinks"; -import LoadingSpinner from "@/components/LoadingSpinner"; import EmptyFavoriteList from "@/components/Favorite/EmptyFavoriteList"; +import LinkCardSkeleton from "@/components/skeleton/LinkCardSkeleton"; interface FavoriteDataType { id: number; @@ -87,8 +87,10 @@ const FavoritePage = ({ {/* 로딩 중일 때 */} {isLoading ? ( -
- +
+ {[...Array(3)].map((_, index) => ( + + ))}
) : linkCardList.length > 0 ? ( <> diff --git a/pages/link/index.tsx b/pages/link/index.tsx index 1bf93fa..c330ef4 100644 --- a/pages/link/index.tsx +++ b/pages/link/index.tsx @@ -23,6 +23,7 @@ import useFetchLinks from "@/hooks/useFetchLinks"; import useViewport from "@/hooks/useViewport"; import useFolderName from "@/hooks/useFolderName"; import LoadingSpinner from "@/components/LoadingSpinner"; +import LinkCardSkeleton from "@/components/skeleton/LinkCardSkeleton"; interface LinkPageProps { linkList: LinkData[]; @@ -119,8 +120,10 @@ const LinkPage = ({ )}
{isLoading ? ( -
- +
+ {[...Array(3)].map((_, index) => ( + + ))}
) : linkCardList.length !== 0 ? ( <>