|
1 |
| -'use client'; |
2 |
| -import {useState} from 'react'; |
3 | 1 | import Image from 'next/image';
|
4 | 2 | import Link from 'next/link';
|
5 |
| -import {useParams} from 'next/navigation'; |
6 |
| -import {MaterialContainer, MaterialForm} from './material'; |
7 | 3 | import Profile from './profile';
|
| 4 | +import {MaterialContainer} from './material'; |
8 | 5 | import icons from '@/public/svgs/navbar';
|
9 | 6 | import '@/src/styles/variable.css';
|
10 |
| -import classUserState from '@/src/recoil/atoms/classUserState'; |
11 |
| -import {useRecoilValue} from 'recoil'; |
12 |
| -import ROLES from '@/src/constants/roles'; |
13 | 7 |
|
14 | 8 | const Navbar = () => {
|
15 |
| - const [isOpen, setIsOpen] = useState<boolean>(false); |
16 |
| - const classUser = useRecoilValue(classUserState); |
17 |
| - |
18 | 9 | const pages = [
|
19 |
| - {name: '클래스', icon: icons.group}, |
20 |
| - {name: '마이페이지', icon: icons.mypage}, |
21 |
| - {name: '문제은행', icon: icons.mypage}, |
| 10 | + {name: '클래스', icon: icons.group, url: '/classes'}, |
| 11 | + {name: '내정보', icon: icons.myPage, url: '/info'}, |
| 12 | + {name: '문제은행', icon: icons.myPage, url: '/bank'}, |
22 | 13 | /* Billing Page - 保留 */
|
23 | 14 | ];
|
24 | 15 |
|
25 |
| - const params = useParams<{className: string; materialName: string}>(); |
26 |
| - // const searchParams = useSearchParams(); |
27 |
| - // const search = searchParams.get('id'); |
28 |
| - const search = '4'; |
29 |
| - |
30 | 16 | return (
|
31 | 17 | <div className="w-72 h-full bg-gray-50">
|
32 |
| - <div className="relative w-72 px-6 pt-5 navbar flex flex-col"> |
| 18 | + <div className="relative w-72 p-6 h-full flex flex-col"> |
33 | 19 | {/* Profile */}
|
34 |
| - <Profile params={params} cId={search} /> |
35 |
| - <div className="pt-2 border-b border-gray-300"></div> |
| 20 | + <Profile /> |
36 | 21 | <div className="h-8"></div>
|
37 |
| - |
38 | 22 | {/* Pages */}
|
39 | 23 | <div className="w-full">
|
40 |
| - <div className="text-zinc-400 mb-4">페이지</div> |
41 |
| - <ul className="w-full"> |
42 |
| - {pages.map((page, index) => { |
43 |
| - return ( |
44 |
| - <li className="w-full mb-3 py-1" key={index}> |
45 |
| - <Link href="/" className=" flex"> |
46 |
| - <Image |
47 |
| - src={page.icon} |
48 |
| - alt="icon" |
49 |
| - width={30} |
50 |
| - height={30} |
51 |
| - className="w-8 h-8 mr-3" |
52 |
| - ></Image> |
53 |
| - {page.name} |
54 |
| - </Link> |
55 |
| - </li> |
56 |
| - ); |
57 |
| - })} |
58 |
| - </ul> |
| 24 | + <div> |
| 25 | + <p className="text-zinc-400 mb-4">페이지</p> |
| 26 | + <ul className="w-full"> |
| 27 | + {pages.map((page, index) => { |
| 28 | + return ( |
| 29 | + <li className="w-full mb-2 py-1" key={index}> |
| 30 | + <Link href={page.url} className="flex"> |
| 31 | + <Image |
| 32 | + src={page.icon} |
| 33 | + alt="icon" |
| 34 | + width={30} |
| 35 | + height={30} |
| 36 | + className="w-8 h-8 mr-3" |
| 37 | + ></Image> |
| 38 | + {page.name} |
| 39 | + </Link> |
| 40 | + </li> |
| 41 | + ); |
| 42 | + })} |
| 43 | + </ul> |
| 44 | + </div> |
59 | 45 | </div>
|
60 | 46 | <div className="h-8"></div>
|
61 |
| - |
62 |
| - {/* Subject*/} |
63 |
| - {search ? ( |
64 |
| - <> |
65 |
| - <div className="w-full flex-1"> |
66 |
| - <div className="flex justify-between items-center mb-4"> |
67 |
| - <div className="text-zinc-400">자료</div> |
68 |
| - {/* <MaterialForm /> */} |
69 |
| - {classUser && ROLES[classUser?.role_id] === 'ADMIN' ? ( |
70 |
| - <div |
71 |
| - onClick={() => setIsOpen(true)} |
72 |
| - className="bg-blue-500 w-6 h-6 flex justify-center items-center rounded-lg " |
73 |
| - > |
74 |
| - <Image |
75 |
| - src={icons.plus} |
76 |
| - width={0} |
77 |
| - height={0} |
78 |
| - alt="plus" |
79 |
| - className="m-auto w-auto h-auto max-w-5 max-h-5" |
80 |
| - /> |
81 |
| - </div> |
82 |
| - ) : null} |
83 |
| - {isOpen && search ? ( |
84 |
| - <MaterialForm setIsOpen={setIsOpen} cId={search} /> |
85 |
| - ) : null} |
86 |
| - </div> |
87 |
| - <MaterialContainer params={params} cId={search} /> |
88 |
| - </div> |
89 |
| - <div className="h-16"></div> |
90 |
| - |
91 |
| - {/* class exit */} |
92 |
| - <div className="flex py-2"> |
93 |
| - <Image |
94 |
| - src={icons.door} |
95 |
| - alt="icon" |
96 |
| - width={30} |
97 |
| - height={30} |
98 |
| - className="w-6 h-6 mr-2" |
99 |
| - ></Image> |
100 |
| - {params.materialName ? ( |
101 |
| - <Link href={`/classes/${search}`}>프롬프트창 떠나기</Link> |
102 |
| - ) : ( |
103 |
| - <Link href="/classes">클래스 떠나기</Link> |
104 |
| - )} |
105 |
| - </div> |
106 |
| - </> |
107 |
| - ) : null} |
| 47 | + {/* Material*/} |
| 48 | + <div className="flex-grow"> |
| 49 | + <MaterialContainer /> |
| 50 | + </div> |
108 | 51 | </div>
|
109 | 52 | </div>
|
110 | 53 | );
|
|
0 commit comments