diff --git a/app/(sub-page)/my/components/my-result-container.tsx b/app/(sub-page)/my/components/my-result-container.tsx
new file mode 100644
index 00000000..fbe77272
--- /dev/null
+++ b/app/(sub-page)/my/components/my-result-container.tsx
@@ -0,0 +1,18 @@
+import UserCreditResult from '@/app/ui/user/user-credit-result';
+import Button from '@/app/ui/view/atom/button/button';
+import Link from 'next/link';
+import React from 'react';
+
+export default function MyResultContainer() {
+ return (
+
+
+
diff --git a/app/business/user/user.validation.ts b/app/business/user/user.validation.ts
index 346ec8ef..ae8aaafd 100644
--- a/app/business/user/user.validation.ts
+++ b/app/business/user/user.validation.ts
@@ -1,11 +1,19 @@
import { z } from 'zod';
// api 변경 예정
+
export const UserInfoResponseSchema = z.object({
studentNumber: z.string(),
studentName: z.string(),
- major: z.string(),
- isSumbitted: z.boolean(),
+ completionDivision: z.array(
+ z.object({
+ majorType: z.string(),
+ major: z.string(),
+ }),
+ ),
+ totalCredit: z.number(),
+ takenCredit: z.number(),
+ graduated: z.boolean(),
});
export const ValidateTokenResponseSchema = z.object({
diff --git a/app/layout.tsx b/app/layout.tsx
index edd4cb0e..f3a04062 100644
--- a/app/layout.tsx
+++ b/app/layout.tsx
@@ -24,7 +24,7 @@ export default function RootLayout({
/>
-
+
diff --git a/app/mocks/db.mock.ts b/app/mocks/db.mock.ts
index 1bbc2871..6c5e0512 100644
--- a/app/mocks/db.mock.ts
+++ b/app/mocks/db.mock.ts
@@ -86,15 +86,30 @@ export const mockDatabase: MockDatabaseAction = {
return {
studentNumber: '',
studentName: '',
- major: '',
- isSumbitted: false,
+ completionDivision: [
+ {
+ majorType: '',
+ major: '',
+ },
+ ],
+ totalCredit: 0,
+ takenCredit: 0,
+ graduated: false,
};
}
return {
studentNumber: user.studentNumber,
studentName: user.name,
- major: user.major,
- isSumbitted: user.isSumbitted,
+ completionDivision: [
+ {
+ majorType: 'primary',
+ major: '디지털컨텐츠디자인학과',
+ },
+ ],
+
+ totalCredit: 132,
+ takenCredit: 50,
+ graduated: false,
};
},
};
diff --git a/app/ui/lecture/lecture-search/empty-data-container.tsx b/app/ui/lecture/lecture-search/empty-data-container.tsx
deleted file mode 100644
index 3de66dab..00000000
--- a/app/ui/lecture/lecture-search/empty-data-container.tsx
+++ /dev/null
@@ -1,20 +0,0 @@
-import React from 'react';
-import Image from 'next/image';
-import searchResultIcon from '@/public/assets/searchResultIcon.svg';
-import List from '../../view/molecule/list';
-
-const emptyDataRender = () => {
- return (
-
-
-
- 검색 결과가 표시됩니다
-
한 글자 이상 검색해주세요
-
-
- );
-};
-
-export default function EmptyDataContainer() {
- return
;
-}
diff --git a/app/ui/lecture/lecture-search/index.tsx b/app/ui/lecture/lecture-search/index.tsx
index 5519f0cf..6d694c08 100644
--- a/app/ui/lecture/lecture-search/index.tsx
+++ b/app/ui/lecture/lecture-search/index.tsx
@@ -2,14 +2,29 @@
import { useAtomValue } from 'jotai';
import LectureSearchBar from './lecture-search-bar';
import { searchWordAtom } from '@/app/store/search-word';
-import EmptyDataContainer from './empty-data-container';
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';
+
+const emptyDataRender = () => {
+ return (
+
+
+
+ 검색 결과가 표시됩니다
+
한 글자 이상 검색해주세요
+
+
+ );
+};
export default function LectureSearch() {
const searchWord = useAtomValue(searchWordAtom);
const searchable = searchWord.keyword && searchWord.keyword.length > 1;
+
return (
@@ -19,7 +34,7 @@ export default function LectureSearch() {
) : (
-
+
)}
diff --git a/app/ui/user/user-credit-result.tsx b/app/ui/user/user-credit-result.tsx
new file mode 100644
index 00000000..a9b45591
--- /dev/null
+++ b/app/ui/user/user-credit-result.tsx
@@ -0,0 +1,22 @@
+import { getUserInfo } from '@/app/business/user/user.query';
+import books from '@/public/assets/books.png';
+import pencil from '@/public/assets/pencil.png';
+import Image from 'next/image';
+
+export default async function UserCreditResult() {
+ const userInfo = await getUserInfo();
+ return (
+
+
+
+
+
+ {userInfo.studentName}님, 총 기준학점 중 {userInfo.takenCredit}학점을
+ 수강하셨습니다!
+
+
+
+
+
+ );
+}
diff --git a/app/ui/user/user-info-navigator/user-info-navigator.tsx b/app/ui/user/user-info-navigator/user-info-navigator.tsx
index 69701268..56caea14 100644
--- a/app/ui/user/user-info-navigator/user-info-navigator.tsx
+++ b/app/ui/user/user-info-navigator/user-info-navigator.tsx
@@ -13,7 +13,7 @@ export default async function UserInfoNavigator() {
{userInfo.studentName}
님
-
{userInfo.major}
+
{userInfo.completionDivision[0].major}
{userInfo.studentNumber}
diff --git a/app/ui/view/molecule/drawer/drawer.tsx b/app/ui/view/molecule/drawer/drawer.tsx
index b9494403..438deb64 100644
--- a/app/ui/view/molecule/drawer/drawer.tsx
+++ b/app/ui/view/molecule/drawer/drawer.tsx
@@ -25,6 +25,7 @@ const Drawer = ({ children, drawerKey, onClose, className }: DrawerProps) => {
className,
)}
>
+
{children}
diff --git a/public/assets/books.png b/public/assets/books.png
new file mode 100644
index 00000000..7be58f30
Binary files /dev/null and b/public/assets/books.png differ
diff --git a/public/assets/pencil.png b/public/assets/pencil.png
new file mode 100644
index 00000000..6008c1f9
Binary files /dev/null and b/public/assets/pencil.png differ