마이페이지
-
+
}>
+
+
diff --git a/app/(sub-page)/my/page.tsx b/app/(sub-page)/my/page.tsx
index 6f8d6fec..c71a5ebb 100644
--- a/app/(sub-page)/my/page.tsx
+++ b/app/(sub-page)/my/page.tsx
@@ -7,6 +7,7 @@ import Drawer from '@/app/ui/view/molecule/drawer/drawer';
import { DIALOG_KEY } from '@/app/utils/key/dialog-key.util';
import { Suspense } from 'react';
import MyResultContainer from './components/my-result-container';
+import TakenLectureSkeleton from '@/app/ui/lecture/taken-lecture/taken-lecture-skeleton';
export default function MyPage() {
return (
@@ -19,7 +20,9 @@ export default function MyPage() {
-
+ }>
+
+
diff --git a/app/ui/lecture/lecture-search/index.tsx b/app/ui/lecture/lecture-search/index.tsx
index 6d694c08..5f3a0aca 100644
--- a/app/ui/lecture/lecture-search/index.tsx
+++ b/app/ui/lecture/lecture-search/index.tsx
@@ -3,11 +3,11 @@ import { useAtomValue } from 'jotai';
import LectureSearchBar from './lecture-search-bar';
import { searchWordAtom } from '@/app/store/search-word';
import { Suspense } from 'react';
-import { LectureSearchResultSpinner } from './lecture-search-result/lecture-search-result-spinner';
-import LectureSearchResult from './lecture-search-result';
import Image from 'next/image';
import searchResultIcon from '@/public/assets/searchResultIcon.svg';
import List from '../../view/molecule/list';
+import LoadingSpinner from '../../view/atom/loading-spinner';
+import LectureSearchResult from './lecture-search-result';
const emptyDataRender = () => {
return (
@@ -30,7 +30,16 @@ export default function LectureSearch() {
{searchable ? (
- }>
+
+
+
+ }
+ >
) : (
diff --git a/app/ui/lecture/lecture-search/lecture-search-result/index.tsx b/app/ui/lecture/lecture-search/lecture-search-result.tsx
similarity index 95%
rename from app/ui/lecture/lecture-search/lecture-search-result/index.tsx
rename to app/ui/lecture/lecture-search/lecture-search-result.tsx
index 16082fdc..fd786ad1 100644
--- a/app/ui/lecture/lecture-search/lecture-search-result/index.tsx
+++ b/app/ui/lecture/lecture-search/lecture-search-result.tsx
@@ -3,10 +3,10 @@ import { useAtomValue } from 'jotai';
import { searchWordAtom } from '@/app/store/search-word';
import { useSuspenseQuery } from '@tanstack/react-query';
import { fetchSearchLectures } from '@/app/business/lecture/search-lecture.query';
-import AddTakenLectureButton from '../../taken-lecture/add-taken-lecture-button';
import List from '@/app/ui/view/molecule/list';
import Grid from '@/app/ui/view/molecule/grid';
import { QUERY_KEY } from '@/app/utils/query/react-query-key';
+import AddTakenLectureButton from '../taken-lecture/add-taken-lecture-button';
export default function LectureSearchResult() {
const searchWord = useAtomValue(searchWordAtom);
diff --git a/app/ui/lecture/lecture-search/lecture-search-result/lecture-search-result-spinner.tsx b/app/ui/lecture/lecture-search/lecture-search-result/lecture-search-result-spinner.tsx
deleted file mode 100644
index 3efdeaa6..00000000
--- a/app/ui/lecture/lecture-search/lecture-search-result/lecture-search-result-spinner.tsx
+++ /dev/null
@@ -1,14 +0,0 @@
-import LoadingSpinner from '@/app/ui/view/atom/loading-spinner';
-
-export function LectureSearchResultSpinner() {
- return (
-
-
-
- );
-}
diff --git a/app/ui/lecture/taken-lecture/taken-lecture-constant.ts b/app/ui/lecture/taken-lecture/taken-lecture-constant.ts
new file mode 100644
index 00000000..d4898b4f
--- /dev/null
+++ b/app/ui/lecture/taken-lecture/taken-lecture-constant.ts
@@ -0,0 +1 @@
+export const TAKEN_LECTURE_TABLE_HEADER_INFO = ['수강년도', '수강학기', '과목코드', '과목명', '학점'];
diff --git a/app/ui/lecture/taken-lecture/taken-lecture-list.tsx b/app/ui/lecture/taken-lecture/taken-lecture-list.tsx
index 8212fa93..aa01a48b 100644
--- a/app/ui/lecture/taken-lecture/taken-lecture-list.tsx
+++ b/app/ui/lecture/taken-lecture/taken-lecture-list.tsx
@@ -7,8 +7,7 @@ import { useAtom } from 'jotai';
import { deleteTakenLecture } from '@/app/business/lecture/taken-lecture.command';
import { useToast } from '../../view/molecule/toast/use-toast';
import Responsive from '../../responsive';
-
-const headerInfo = ['수강년도', '수강학기', '과목코드', '과목명', '학점'];
+import { TAKEN_LECTURE_TABLE_HEADER_INFO } from './taken-lecture-constant';
export default function TakenLectureList() {
const [takenLectures, setTakenLectures] = useAtom(takenLectureAtom);
@@ -36,7 +35,7 @@ export default function TakenLectureList() {
<>
(
@@ -45,7 +44,7 @@ export default function TakenLectureList() {
+
+
+ {Array.from({ length: 3 }).map((_, index) => (
+
+ ))}
+
+ );
+}
diff --git a/app/ui/result/result-category-card/result-category-card.skeleton.tsx b/app/ui/result/result-category-card/result-category-card.skeleton.tsx
index ade06bc0..95988486 100644
--- a/app/ui/result/result-category-card/result-category-card.skeleton.tsx
+++ b/app/ui/result/result-category-card/result-category-card.skeleton.tsx
@@ -4,7 +4,7 @@ import { cn } from '@/app/utils/shadcn/utils';
import Book from '@/public/assets/book.svg';
import Image from 'next/image';
import * as React from 'react';
-import Skeleton from '../../view/atom/skeleton';
+import Skeleton from '../../../utils/skeleton';
function ResultCategoryCardSkeleton() {
return (
diff --git a/app/ui/skeletons.tsx b/app/ui/skeletons.tsx
deleted file mode 100644
index 189e5407..00000000
--- a/app/ui/skeletons.tsx
+++ /dev/null
@@ -1,20 +0,0 @@
-// 요즘 고민인데 이런 util component들? 어디다가 위치시켜야할 지 고민
-// 일단 따로 빼놨음
-
-const shimmer =
- 'before:absolute before:inset-0 before:-translate-x-full before:animate-[shimmer_2s_infinite] before:bg-gradient-to-r before:from-transparent before:via-white/60 before:to-transparent';
-
-export function RevenueChartSkeleton() {
- return (
-
- );
-}
diff --git a/app/ui/user/user-credit-result/user-credit-result-skeleton.tsx b/app/ui/user/user-credit-result/user-credit-result-skeleton.tsx
new file mode 100644
index 00000000..80b84999
--- /dev/null
+++ b/app/ui/user/user-credit-result/user-credit-result-skeleton.tsx
@@ -0,0 +1,6 @@
+import React from 'react';
+import Skeleton from '../../../utils/skeleton';
+
+export default function UserCreditResultSkeleton() {
+ return ;
+}
diff --git a/app/ui/user/user-credit-result.tsx b/app/ui/user/user-credit-result/user-credit-result.tsx
similarity index 100%
rename from app/ui/user/user-credit-result.tsx
rename to app/ui/user/user-credit-result/user-credit-result.tsx
diff --git a/app/ui/user/user-info-card/user-info-card.skeleton.tsx b/app/ui/user/user-info-card/user-info-card.skeleton.tsx
index a72b2062..35df63e4 100644
--- a/app/ui/user/user-info-card/user-info-card.skeleton.tsx
+++ b/app/ui/user/user-info-card/user-info-card.skeleton.tsx
@@ -1,4 +1,4 @@
-import Skeleton from '../../view/atom/skeleton';
+import Skeleton from '../../../utils/skeleton';
function UserInfoCardSkeleton() {
return (
diff --git a/app/ui/user/user-info-navigator/user-info-navigator.skeleton.tsx b/app/ui/user/user-info-navigator/user-info-navigator.skeleton.tsx
index 18c3ccab..534219d3 100644
--- a/app/ui/user/user-info-navigator/user-info-navigator.skeleton.tsx
+++ b/app/ui/user/user-info-navigator/user-info-navigator.skeleton.tsx
@@ -1,4 +1,4 @@
-import Skeleton from '../../view/atom/skeleton';
+import Skeleton from '../../../utils/skeleton';
export default function UserInfoNavigatorSkeleton() {
return (
diff --git a/app/ui/view/atom/label-container/label-container.skeleton.tsx b/app/ui/view/atom/label-container/label-container.skeleton.tsx
index 5a506fcd..2b369156 100644
--- a/app/ui/view/atom/label-container/label-container.skeleton.tsx
+++ b/app/ui/view/atom/label-container/label-container.skeleton.tsx
@@ -1,5 +1,5 @@
import { ReactNode } from 'react';
-import Skeleton from '../skeleton';
+import Skeleton from '../../../../utils/skeleton';
interface LabelContainerProps {
rightElement: ReactNode;
diff --git a/app/ui/view/atom/skeleton.tsx b/app/utils/skeleton.tsx
similarity index 56%
rename from app/ui/view/atom/skeleton.tsx
rename to app/utils/skeleton.tsx
index 4cfa96e4..71999556 100644
--- a/app/ui/view/atom/skeleton.tsx
+++ b/app/utils/skeleton.tsx
@@ -1,5 +1,5 @@
import { cn } from '@/app/utils/shadcn/utils';
export default function Skeleton({ className, ...props }: React.HTMLAttributes) {
- return ;
+ return ;
}