Skip to content

Commit f4f2879

Browse files
authored
[style] 마이페이지 탭별 페이지#29 #30 (#85)
* [style]mybar * [style]알람설정 * [style] 탭 메뉴 접근성 * [style]마이페이지 * [style]마이페이지 반응형 수정 * [style]툴팁컴포넌트 * [chore]포매팅
1 parent 2ae579f commit f4f2879

File tree

26 files changed

+743
-15
lines changed

26 files changed

+743
-15
lines changed

src/app/mypage/layout.tsx

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import MyNav from '@/domains/mypage/main/MyNav';
2+
import MyProfile from '@/domains/mypage/main/MyProfile';
3+
4+
function Layout({ children }: { children: React.ReactNode }) {
5+
return (
6+
<div className="max-w-1024 page-layout py-12">
7+
<MyProfile />
8+
<MyNav />
9+
<div className="mt-5">{children}</div>
10+
</div>
11+
);
12+
}
13+
export default Layout;
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import CommentList from '@/domains/shared/components/comment/CommentList';
2+
function MyComment() {
3+
return (
4+
<ul>
5+
<CommentList></CommentList>
6+
</ul>
7+
);
8+
}
9+
export default MyComment;
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import PostCard from '@/domains/community/main/PostCard';
2+
3+
function MyPost() {
4+
return (
5+
<ul>
6+
<li>
7+
<PostCard label="레시피"></PostCard>
8+
</li>
9+
<li>
10+
<PostCard label="레시피"></PostCard>
11+
</li>
12+
<li>
13+
<PostCard label="레시피"></PostCard>
14+
</li>
15+
<li>
16+
<PostCard label="레시피"></PostCard>
17+
</li>
18+
<li>
19+
<PostCard label="레시피"></PostCard>
20+
</li>
21+
<li>
22+
<PostCard label="레시피"></PostCard>
23+
</li>
24+
</ul>
25+
);
26+
}
27+
export default MyPost;
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import PostCard from '@/domains/community/main/PostCard';
2+
3+
function MyPost() {
4+
return (
5+
<ul>
6+
<li>
7+
<PostCard label="레시피"></PostCard>
8+
</li>
9+
<li>
10+
<PostCard label="팁"></PostCard>
11+
</li>
12+
<li>
13+
<PostCard label="레시피"></PostCard>
14+
</li>
15+
</ul>
16+
);
17+
}
18+
export default MyPost;

src/app/mypage/my-active/page.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import { redirect } from 'next/navigation';
2+
3+
function page() {
4+
return redirect('/mypage/my-active/my-post');
5+
}
6+
export default page;

src/app/mypage/my-alarm/page.tsx

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import Alarm from '@/domains/mypage/components/Alarm';
2+
3+
function MyAlarm() {
4+
return (
5+
<div className="flex flex-col gap-3">
6+
<Alarm></Alarm>
7+
<Alarm></Alarm>
8+
9+
<Alarm></Alarm>
10+
<Alarm></Alarm>
11+
</div>
12+
);
13+
}
14+
export default MyAlarm;

src/app/mypage/my-setting/page.tsx

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
'use client';
2+
import TextButton from '@/shared/components/button/TextButton';
3+
import Button from '@/shared/components/button/Button';
4+
import ToggleBtn from '@/domains/mypage/components/ToggleBtn';
5+
import { useState } from 'react';
6+
import EditNickName from '@/domains/mypage/components/EditNickName';
7+
import WithdrawModal from '@/domains/mypage/components/WithdrawModal';
8+
9+
function MySetting() {
10+
const [isOpen, setIsOpen] = useState(false);
11+
const [isQuit, setIsQuit] = useState(false);
12+
13+
return (
14+
<section className="flex flex-col h-80 md:h-100 lg:h-125 justify-between">
15+
{isOpen && <EditNickName open={isOpen} onClose={() => setIsOpen(!isOpen)} />}
16+
{isQuit && <WithdrawModal open={isQuit} onClose={() => setIsQuit(!isQuit)} />}
17+
<div>
18+
<div className="flex justify-between py-5 border-b-1 border-gray-light">
19+
<div className="text-lg">닉네임 : UserName</div>
20+
<TextButton onClick={() => setIsOpen(!isOpen)}>수정하기</TextButton>
21+
</div>
22+
<div className="flex justify-between py-5">
23+
<h2>알람설정</h2>
24+
<ToggleBtn />
25+
</div>
26+
</div>
27+
<div className="p-4 bg-gray w-20 flex-center items-center">ToopTip</div>
28+
<div className="flex justify-between items-center">
29+
<TextButton onClick={() => setIsQuit(!isQuit)}>회원탈퇴</TextButton>
30+
31+
<div className="flex gap-2 ">
32+
<Button color="purple">취소</Button>
33+
<Button>변경상태 저장</Button>
34+
</div>
35+
</div>
36+
</section>
37+
);
38+
}
39+
export default MySetting;

src/app/mypage/mybar/page.tsx

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
'use client';
2+
import CocktailCard from '@/domains/recipe/CocktailCard';
3+
import Img from '@/shared/assets/images/dummy/exampleCocktail.png';
4+
5+
function MyBar() {
6+
return (
7+
<div
8+
className="grid grid-cols-2 mt-10 gap-8 w-full sm:[grid-template-columns:repeat(2,minmax(0,320px))] md:justify-evenly md:[grid-template-columns:repeat(3,minmax(0,250px))]
9+
lg:[grid-template-columns:repeat(4,minmax(0,250px))]"
10+
>
11+
<CocktailCard src={Img} type="myBar" name="Old Pashioned" nameKo="올드 패션드"></CocktailCard>
12+
<CocktailCard
13+
src={Img}
14+
type="myBar"
15+
name="Old Pashioned"
16+
nameKo="올드 패션드"
17+
></CocktailCard>{' '}
18+
<CocktailCard src={Img} type="myBar" name="Old Pashioned" nameKo="올드 패션드"></CocktailCard>{' '}
19+
<CocktailCard src={Img} type="myBar" name="Old Pashioned" nameKo="올드 패션드"></CocktailCard>{' '}
20+
<CocktailCard src={Img} type="myBar" name="Old Pashioned" nameKo="올드 패션드"></CocktailCard>{' '}
21+
<CocktailCard src={Img} type="myBar" name="Old Pashioned" nameKo="올드 패션드"></CocktailCard>
22+
</div>
23+
);
24+
}
25+
export default MyBar;

src/app/mypage/page.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
function Page() {
2-
return <div>mypage</div>;
1+
import { redirect } from 'next/navigation';
2+
3+
function page() {
4+
return redirect('/mypage/mybar');
35
}
4-
export default Page;
6+
export default page;
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
'use client';
2+
import SsuryAlram from '@/shared/assets/ssury/ssury_bell.webp';
3+
import clsx from 'clsx';
4+
import Image from 'next/image';
5+
import { useState } from 'react';
6+
7+
function Alarm() {
8+
const [isClick, setIsClick] = useState(false);
9+
10+
const handleClick = () => {
11+
setIsClick(!isClick);
12+
};
13+
return (
14+
<div
15+
className={clsx(
16+
`px-3 md:px-5 py-4 h-auto md:h-33 cursor-pointer bg-gray-dark/80 rounded-2xl`,
17+
isClick ? 'opacity-50' : 'bg-gray-dark/80'
18+
)}
19+
onClick={handleClick}
20+
>
21+
<div className="flex flex-col gap-2">
22+
<div className="flex justify-between items-center">
23+
<div className="flex gap-2 items-center">
24+
<Image src={SsuryAlram} alt="알람" width={40} height={40} />
25+
<p className="text-sm text-white/80">9월 18일</p>
26+
</div>
27+
<p className="text-sm text-white/80">10분 전</p>
28+
</div>
29+
<div className="flex flex-col">
30+
<h2 className="text-lg font-bold">새로운 좋아요 알림</h2>
31+
<p className="text-sm text-white/80">User님이 내 글에 좋아요를 누르셨습니다.</p>
32+
</div>
33+
</div>
34+
</div>
35+
);
36+
}
37+
export default Alarm;

0 commit comments

Comments
 (0)