diff --git a/src/app/layout.tsx b/src/app/layout.tsx
index 16084e3..cef553c 100644
--- a/src/app/layout.tsx
+++ b/src/app/layout.tsx
@@ -18,10 +18,7 @@ export default function RootLayout({
diff --git a/src/app/login/first-user/page.tsx b/src/app/login/first-user/page.tsx
index 7f902a4..6a939dc 100644
--- a/src/app/login/first-user/page.tsx
+++ b/src/app/login/first-user/page.tsx
@@ -1,4 +1,4 @@
-import LoginRedirectHandler from '@/shared/components/auth/LoginRedirectHandler';
+import LoginRedirectHandler from '@/domains/shared/auth/LoginRedirectHandler';
function Page() {
return
;
diff --git a/src/app/login/page.tsx b/src/app/login/page.tsx
index d1e4fb8..d2548bb 100644
--- a/src/app/login/page.tsx
+++ b/src/app/login/page.tsx
@@ -1,7 +1,7 @@
import Image from 'next/image';
import type { Metadata } from 'next';
import loginBg from '@/shared/assets/images/login_bg.webp';
-import SocialLogin from './SocialLogin';
+import SocialLogin from '@/domains/login/main/SocialLogin';
export const metadata: Metadata = {
title: 'SSOUL | 로그인',
diff --git a/src/app/login/success/page.tsx b/src/app/login/success/page.tsx
index 15766eb..25b93a4 100644
--- a/src/app/login/success/page.tsx
+++ b/src/app/login/success/page.tsx
@@ -1,4 +1,4 @@
-import LoginRedirectHandler from '@/shared/components/auth/LoginRedirectHandler';
+import LoginRedirectHandler from '@/domains/shared/auth/LoginRedirectHandler';
function Page() {
return
;
diff --git a/src/app/recipe/[id]/page.tsx b/src/app/recipe/[id]/page.tsx
index 9d89ac4..8eec717 100644
--- a/src/app/recipe/[id]/page.tsx
+++ b/src/app/recipe/[id]/page.tsx
@@ -1,9 +1,11 @@
-import StarBg from '@/shared/components/starBg/StarBg';
+import DetailMain from '@/domains/recipe/details/DetailMain';
+import StarBg from '@/domains/shared/starBg/StarBg';
function page() {
return (
-
-
+
+
+
);
}
diff --git a/src/app/recipe/page.tsx b/src/app/recipe/page.tsx
index 9f5e417..e2383b7 100644
--- a/src/app/recipe/page.tsx
+++ b/src/app/recipe/page.tsx
@@ -1,10 +1,10 @@
-import PageHeader from '@/shared/components/pageHeader/PageHeader';
import { Metadata } from 'next';
-import Glass from '@/shared/assets/images/recipe_page_header.webp';
-import SelectBox from '@/shared/components/InputBox/SelectBox';
+import SelectBox from '@/domains/shared/select-box/SelectBox';
import Input from '@/shared/components/InputBox/Input';
-import CocktailList from '@/shared/components/recipePage/cocktailList/CocktailList';
-import Accordion from './components/Accordion';
+
+import Accordion from '../../domains/recipe/components/main/Accordion';
+import CocktailList from '@/domains/recipe/CocktailList';
+import PageHeader from '@/domains/shared/pageHeader/PageHeader';
export const metadata: Metadata = {
title: 'SSOUL | 칵테일레시피',
@@ -15,11 +15,7 @@ function Page() {
return (
diff --git a/src/app/recommend/page.tsx b/src/app/recommend/page.tsx
index e8575e9..ee68e29 100644
--- a/src/app/recommend/page.tsx
+++ b/src/app/recommend/page.tsx
@@ -1,7 +1,7 @@
+import ChatForm from '@/domains/recommend/components/ChatForm';
+import MyChat from '@/domains/recommend/components/MyChat';
+import SsuryChat from '@/domains/recommend/components/SsuryChat';
import Bg from '@/shared/assets/images/recommend_bg.webp';
-import ChatForm from './components/ChatForm';
-import SsuryChat from './components/SsuryChat';
-import MyChat from './components/MyChat';
function Page() {
return (
diff --git a/src/shared/components/community/CommunityFilter.tsx b/src/domains/community/CommunityFilter.tsx
similarity index 87%
rename from src/shared/components/community/CommunityFilter.tsx
rename to src/domains/community/CommunityFilter.tsx
index c8deedd..fa7b129 100644
--- a/src/shared/components/community/CommunityFilter.tsx
+++ b/src/domains/community/CommunityFilter.tsx
@@ -1,6 +1,7 @@
'use client';
-import SelectBox from '../InputBox/SelectBox';
+import SelectBox from '../shared/select-box/SelectBox';
+
function CommunityFilter() {
return (
+ );
+}
+
+export default CommunityHeader;
diff --git a/src/shared/components/community/CommunityTab.tsx b/src/domains/community/CommunityTab.tsx
similarity index 100%
rename from src/shared/components/community/CommunityTab.tsx
rename to src/domains/community/CommunityTab.tsx
diff --git a/src/shared/components/community/PostCard.tsx b/src/domains/community/PostCard.tsx
similarity index 67%
rename from src/shared/components/community/PostCard.tsx
rename to src/domains/community/PostCard.tsx
index cc672e8..2514a24 100644
--- a/src/shared/components/community/PostCard.tsx
+++ b/src/domains/community/PostCard.tsx
@@ -1,11 +1,13 @@
import Image from 'next/image';
import prePost from '@/shared/assets/images/prepost_img.webp';
-import PostLabel from './PostLabel';
+
+import PostInfo from './PostInfo';
+import Label from '../shared/label/Label';
function PostCard({ label }: { label: string }) {
return (
-
+
@@ -14,18 +16,7 @@ function PostCard({ label }: { label: string }) {
칵테일 처음 만들어 보는데 랄랄
가나다라마바사아자차카파타하
-
- - 실버븬
- - |
- - 3분 전
- - |
- - 조회 3
- - |
- - 댓글 3
-
+
+ {hasUserName && (
+ <>
+ 실버븬
+ |
+ >
+ )}
+ 3분 전
+ |
+ 조회 3
+ |
+ 댓글 3
+
+ );
+}
+
+export default PostInfo;
diff --git a/src/domains/community/WriteBtn.tsx b/src/domains/community/WriteBtn.tsx
new file mode 100644
index 0000000..f6a8752
--- /dev/null
+++ b/src/domains/community/WriteBtn.tsx
@@ -0,0 +1,27 @@
+'use client';
+
+import Write from '@/shared/assets/icons/edit_28.svg';
+import { useRouter } from 'next/navigation';
+
+type RouterType = ReturnType;
+
+function WriteBtn() {
+ const router = useRouter();
+
+ const handleClick = (router: RouterType) => {
+ router.push('/community/write');
+ };
+
+ return (
+
+ );
+}
+
+export default WriteBtn;
diff --git a/src/domains/community/components/comment/CommentBtn.tsx b/src/domains/community/components/comment/CommentBtn.tsx
new file mode 100644
index 0000000..b3f497f
--- /dev/null
+++ b/src/domains/community/components/comment/CommentBtn.tsx
@@ -0,0 +1,25 @@
+import CommentIcon from '@/shared/assets/icons/comment_28.svg';
+import { useState } from 'react';
+
+function CommentBtn({ size }: { size: 'sm' | 'md' }) {
+ const [isClick, setIsClick] = useState(false);
+
+ const handleClick = () => {
+ setIsClick(!isClick);
+ };
+ return (
+
+ );
+}
+export default CommentBtn;
diff --git a/src/shared/components/like/LikeBtn.tsx b/src/domains/community/components/like/LikeBtn.tsx
similarity index 76%
rename from src/shared/components/like/LikeBtn.tsx
rename to src/domains/community/components/like/LikeBtn.tsx
index 48cbf5c..0ba3be4 100644
--- a/src/shared/components/like/LikeBtn.tsx
+++ b/src/domains/community/components/like/LikeBtn.tsx
@@ -1,7 +1,7 @@
import LikeIcon from '@/shared/assets/icons/like_28.svg';
import { useState } from 'react';
-function LikeBtn() {
+function LikeBtn({ size }: { size: 'sm' | 'md' }) {
const [isClick, setIsClick] = useState(false);
const handleClick = () => {
@@ -10,7 +10,7 @@ function LikeBtn() {
return (
+ );
+}
+
+export default CocktailTag;
diff --git a/src/domains/community/detail/DetailContent.tsx b/src/domains/community/detail/DetailContent.tsx
new file mode 100644
index 0000000..e015e77
--- /dev/null
+++ b/src/domains/community/detail/DetailContent.tsx
@@ -0,0 +1,44 @@
+import Image from 'next/image';
+import prePost from '@/shared/assets/images/prepost_img.webp';
+import PostInfo from '../PostInfo';
+import CocktailTag from './CocktailTag';
+import DetailTabMobile from './tab/DetailTabMobile';
+
+function DetailContent() {
+ return (
+
+
+
+
+
+ 내용은 이거입니다 하하하
+ 그런가요 안녕하세요
+
+ 글입니다다다다다다다다다다다다
+ 내용은 이거입니다 하하하
+ 그런가요 안녕하세요
+
+ 글입니다다다다다다다다다다다다
+ 내용은 이거입니다 하하하
+ 그런가요 안녕하세요
+
+ 글입니다다다다다다다다다다다다
+ 내용은 이거입니다 하하하
+ 그런가요 안녕하세요
+
+ 글입니다다다다다다다다다다다다
+ 내용은 이거입니다 하하하
+ 그런가요 안녕하세요
+
+ 글입니다다다다다다다다다다다다
+
+
+
+
+
+
+
+ );
+}
+
+export default DetailContent;
diff --git a/src/domains/community/detail/DetailHeader.tsx b/src/domains/community/detail/DetailHeader.tsx
new file mode 100644
index 0000000..9eb4300
--- /dev/null
+++ b/src/domains/community/detail/DetailHeader.tsx
@@ -0,0 +1,13 @@
+import Label from '@/domains/shared/label/Label';
+import EditDelete from './EditDelete';
+
+function DetailHeader() {
+ return (
+
+ );
+}
+
+export default DetailHeader;
diff --git a/src/domains/community/detail/DetailTitle.tsx b/src/domains/community/detail/DetailTitle.tsx
new file mode 100644
index 0000000..1850aff
--- /dev/null
+++ b/src/domains/community/detail/DetailTitle.tsx
@@ -0,0 +1,12 @@
+import Profile from './Profile';
+
+function DetailTitle() {
+ return (
+
+ );
+}
+
+export default DetailTitle;
diff --git a/src/domains/community/detail/EditDelete.tsx b/src/domains/community/detail/EditDelete.tsx
new file mode 100644
index 0000000..a07aec5
--- /dev/null
+++ b/src/domains/community/detail/EditDelete.tsx
@@ -0,0 +1,25 @@
+function EditDelete({ use }: { use: 'post' | 'comment' }) {
+ return (
+
+
+ |
+
+
+ );
+}
+
+export default EditDelete;
diff --git a/src/domains/community/detail/Profile.tsx b/src/domains/community/detail/Profile.tsx
new file mode 100644
index 0000000..6a07849
--- /dev/null
+++ b/src/domains/community/detail/Profile.tsx
@@ -0,0 +1,12 @@
+function Profile() {
+ return (
+
+ );
+}
+
+export default Profile;
diff --git a/src/domains/community/detail/comment/CommentHeader.tsx b/src/domains/community/detail/comment/CommentHeader.tsx
new file mode 100644
index 0000000..822736a
--- /dev/null
+++ b/src/domains/community/detail/comment/CommentHeader.tsx
@@ -0,0 +1,17 @@
+import EditDelete from '../EditDelete';
+import Profile from '../Profile';
+
+function CommentHeader() {
+ return (
+
+ );
+}
+
+export default CommentHeader;
diff --git a/src/domains/community/detail/comment/CommentList.tsx b/src/domains/community/detail/comment/CommentList.tsx
new file mode 100644
index 0000000..137e2ec
--- /dev/null
+++ b/src/domains/community/detail/comment/CommentList.tsx
@@ -0,0 +1,26 @@
+import CommentHeader from './CommentHeader';
+
+function CommentList() {
+ return (
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+
+ );
+}
+
+export default CommentList;
diff --git a/src/domains/community/detail/comment/DetailComment.tsx b/src/domains/community/detail/comment/DetailComment.tsx
new file mode 100644
index 0000000..1f747df
--- /dev/null
+++ b/src/domains/community/detail/comment/DetailComment.tsx
@@ -0,0 +1,21 @@
+import Button from '@/shared/components/button/Button';
+import Input from '@/shared/components/InputBox/Input';
+
+function DetailComment() {
+ return (
+
+ );
+}
+
+export default DetailComment;
diff --git a/src/domains/community/detail/tab/DetailTabDesktop.tsx b/src/domains/community/detail/tab/DetailTabDesktop.tsx
new file mode 100644
index 0000000..d0ccdfa
--- /dev/null
+++ b/src/domains/community/detail/tab/DetailTabDesktop.tsx
@@ -0,0 +1,32 @@
+'use client';
+
+import Share from '@/domains/shared/share/Share';
+import CommentBtn from '../../components/comment/CommentBtn';
+import LikeBtn from '../../components/like/LikeBtn';
+
+function DetailTabDesktop() {
+ return (
+
+
+
+
+
+ 2
+
+
+
+ 2
+
+
+
+
+
+
+
+ );
+}
+
+export default DetailTabDesktop;
diff --git a/src/domains/community/detail/tab/DetailTabMobile.tsx b/src/domains/community/detail/tab/DetailTabMobile.tsx
new file mode 100644
index 0000000..042413d
--- /dev/null
+++ b/src/domains/community/detail/tab/DetailTabMobile.tsx
@@ -0,0 +1,25 @@
+'use client';
+
+import Share from '@/domains/shared/share/Share';
+import LikeBtn from '../../components/like/LikeBtn';
+
+function DetailTabMobile() {
+ return (
+
+ );
+}
+
+export default DetailTabMobile;
diff --git a/src/app/login/SocialLogin.tsx b/src/domains/login/main/SocialLogin.tsx
similarity index 95%
rename from src/app/login/SocialLogin.tsx
rename to src/domains/login/main/SocialLogin.tsx
index 1d60cbf..30720de 100644
--- a/src/app/login/SocialLogin.tsx
+++ b/src/domains/login/main/SocialLogin.tsx
@@ -4,7 +4,7 @@ import Naver from '@/shared/assets/icons/naver.svg';
import Kakao from '@/shared/assets/icons/kakao.svg';
import Google from '@/shared/assets/icons/google.svg';
import tw from '@/shared/utills/tw';
-import { useAuthStore } from '@/shared/@store/auth';
+import { useAuthStore } from '@/domains/shared/store/auth';
function SocialLogin() {
const { loginWithProvider } = useAuthStore();
diff --git a/src/shared/components/recipePage/cocktailCard/CocktailCard.tsx b/src/domains/recipe/CocktailCard.tsx
similarity index 94%
rename from src/shared/components/recipePage/cocktailCard/CocktailCard.tsx
rename to src/domains/recipe/CocktailCard.tsx
index d362703..02c7c5d 100644
--- a/src/shared/components/recipePage/cocktailCard/CocktailCard.tsx
+++ b/src/domains/recipe/CocktailCard.tsx
@@ -1,7 +1,7 @@
import { StaticImageData } from 'next/image';
import Image from 'next/image';
import Img from '@/shared/assets/images/dummy/exampleCocktail.png';
-import Keep from '@/shared/components/keep/Keep';
+import Keep from '../shared/keep/Keep';
interface Props {
src?: StaticImageData;
diff --git a/src/shared/components/recipePage/cocktailList/CocktailList.tsx b/src/domains/recipe/CocktailList.tsx
similarity index 93%
rename from src/shared/components/recipePage/cocktailList/CocktailList.tsx
rename to src/domains/recipe/CocktailList.tsx
index 2c5ede9..1b0200a 100644
--- a/src/shared/components/recipePage/cocktailList/CocktailList.tsx
+++ b/src/domains/recipe/CocktailList.tsx
@@ -1,5 +1,5 @@
'use client';
-import CocktailCard from '../cocktailCard/CocktailCard';
+import CocktailCard from './CocktailCard';
function CocktailList() {
// const [data,setData] = useState([])
diff --git a/src/domains/recipe/components/details/BackBtn.tsx b/src/domains/recipe/components/details/BackBtn.tsx
new file mode 100644
index 0000000..de2d467
--- /dev/null
+++ b/src/domains/recipe/components/details/BackBtn.tsx
@@ -0,0 +1,15 @@
+'use client';
+import Back from '@/shared/assets/icons/back_36.svg';
+import { useRouter } from 'next/navigation';
+
+function BackBtn() {
+ const router = useRouter();
+ console.log(router);
+
+ return (
+
+ );
+}
+export default BackBtn;
diff --git a/src/app/recipe/components/Accordion.tsx b/src/domains/recipe/components/main/Accordion.tsx
similarity index 92%
rename from src/app/recipe/components/Accordion.tsx
rename to src/domains/recipe/components/main/Accordion.tsx
index aff8c14..a1a71e2 100644
--- a/src/app/recipe/components/Accordion.tsx
+++ b/src/domains/recipe/components/main/Accordion.tsx
@@ -1,6 +1,6 @@
'use client';
-import SelectBox from '@/shared/components/InputBox/SelectBox';
+import SelectBox from '@/domains/shared/select-box/SelectBox';
const selectOption = [
{
diff --git a/src/domains/recipe/details/DetailItem.tsx b/src/domains/recipe/details/DetailItem.tsx
new file mode 100644
index 0000000..ab1b5fc
--- /dev/null
+++ b/src/domains/recipe/details/DetailItem.tsx
@@ -0,0 +1,73 @@
+import Image from 'next/image';
+import Short from '@/shared/assets/icons/short_36.svg';
+import Example from '@/shared/assets/images/dummy/exampleCocktail.png';
+import Label from '@/domains/shared/label/Label';
+
+function DetailItem() {
+ return (
+
+
+
+
+
+
+
+ Old Fashioned
+
+
+ 올드 패션드
+
+
+
+
+ 쿠바 아바나의 전설적인 바 엘 플로리디타(El Floridita).이곳에서 노벨문학상 작가 어니스트
+ 헤밍웨이가 즐겨 찾던 특별한 한 잔이 탄생했습니다.
+
+
+
+
+
+
+
+
+
+
+
+
-
+
도수
+ |
+
+
-
+
24.8%
+
+
+
+
+
-
+
글래스 타입
+ |
+
+
-
+
+
숏 드링크
+
+
+
+
+ );
+}
+export default DetailItem;
diff --git a/src/domains/recipe/details/DetailMain.tsx b/src/domains/recipe/details/DetailMain.tsx
new file mode 100644
index 0000000..ee30a44
--- /dev/null
+++ b/src/domains/recipe/details/DetailMain.tsx
@@ -0,0 +1,43 @@
+import DetailItem from './DetailItem';
+import DetailRecipe from './DetailRecipe';
+import DetailsHeader from './DetailsHeader';
+import SsuryShake from '@/shared/assets/ssury/ssury_make.webp';
+import SsuryDrink from '@/shared/assets/ssury/ssury_drink.webp';
+import Image from 'next/image';
+
+function DetailMain() {
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
+export default DetailMain;
diff --git a/src/domains/recipe/details/DetailRecipe.tsx b/src/domains/recipe/details/DetailRecipe.tsx
new file mode 100644
index 0000000..ed6decd
--- /dev/null
+++ b/src/domains/recipe/details/DetailRecipe.tsx
@@ -0,0 +1,36 @@
+function DetailRecipe() {
+ return (
+
+
+ 재료
+
+ -
+ 럼 1 1/2oz | 90ml
+
+ -
+ 심플시럽 1/2oz | 30ml
+
+ -
+ 라임 1/2개
+
+ -
+ 자몽 1/2개
+
+
+
+
+
+
+ 만드는 법
+
+ - 셰이커에 라임즙을 착즙기로 짜 넣습니다
+ - 셰이커에 자몽즙을 착즙기로 짜 넣습니다
+ - 셰이커에 재료를 넣습니다
+ - 셰이킹 후 잔에 따라줍니다
+
+
+
+
+ );
+}
+export default DetailRecipe;
diff --git a/src/domains/recipe/details/DetailsHeader.tsx b/src/domains/recipe/details/DetailsHeader.tsx
new file mode 100644
index 0000000..b983174
--- /dev/null
+++ b/src/domains/recipe/details/DetailsHeader.tsx
@@ -0,0 +1,16 @@
+import Share from '@/domains/shared/share/Share';
+import BackBtn from '../components/details/BackBtn';
+import Keep from '@/domains/shared/keep/Keep';
+
+function DetailsHeader() {
+ return (
+
+ );
+}
+export default DetailsHeader;
diff --git a/src/shared/@store/accordionStore.ts b/src/domains/recipe/store/accordionStore.ts
similarity index 100%
rename from src/shared/@store/accordionStore.ts
rename to src/domains/recipe/store/accordionStore.ts
diff --git a/src/app/recommend/components/ChatCocktailCard.tsx b/src/domains/recommend/components/ChatCocktailCard.tsx
similarity index 94%
rename from src/app/recommend/components/ChatCocktailCard.tsx
rename to src/domains/recommend/components/ChatCocktailCard.tsx
index 19b6c4a..0af0862 100644
--- a/src/app/recommend/components/ChatCocktailCard.tsx
+++ b/src/domains/recommend/components/ChatCocktailCard.tsx
@@ -1,7 +1,7 @@
import Image from 'next/image';
import Dummy from '@/shared/assets/images/dummy/exampleCocktail.png';
import Link from 'next/link';
-import Keep from '@/shared/components/keep/Keep';
+import Keep from '@/domains/shared/keep/Keep';
function ChatCocktailCard() {
return (
diff --git a/src/app/recommend/components/ChatForm.tsx b/src/domains/recommend/components/ChatForm.tsx
similarity index 100%
rename from src/app/recommend/components/ChatForm.tsx
rename to src/domains/recommend/components/ChatForm.tsx
diff --git a/src/app/recommend/components/ChatRadio.tsx b/src/domains/recommend/components/ChatRadio.tsx
similarity index 100%
rename from src/app/recommend/components/ChatRadio.tsx
rename to src/domains/recommend/components/ChatRadio.tsx
diff --git a/src/app/recommend/components/MyChat.tsx b/src/domains/recommend/components/MyChat.tsx
similarity index 100%
rename from src/app/recommend/components/MyChat.tsx
rename to src/domains/recommend/components/MyChat.tsx
diff --git a/src/app/recommend/components/SsuryChat.tsx b/src/domains/recommend/components/SsuryChat.tsx
similarity index 100%
rename from src/app/recommend/components/SsuryChat.tsx
rename to src/domains/recommend/components/SsuryChat.tsx
diff --git a/src/shared/components/auth/LoginConfirm.tsx b/src/domains/shared/auth/LoginConfirm.tsx
similarity index 100%
rename from src/shared/components/auth/LoginConfirm.tsx
rename to src/domains/shared/auth/LoginConfirm.tsx
diff --git a/src/shared/components/auth/LoginRedirectHandler.tsx b/src/domains/shared/auth/LoginRedirectHandler.tsx
similarity index 51%
rename from src/shared/components/auth/LoginRedirectHandler.tsx
rename to src/domains/shared/auth/LoginRedirectHandler.tsx
index 4077b54..b18d780 100644
--- a/src/shared/components/auth/LoginRedirectHandler.tsx
+++ b/src/domains/shared/auth/LoginRedirectHandler.tsx
@@ -2,17 +2,20 @@
import { useEffect, useState } from 'react';
import { usePathname, useRouter } from 'next/navigation';
-import { useAuthStore } from '@/shared/@store/auth';
-import { useModalStore } from '@/shared/@store/modal';
+
import { customToast } from '@/shared/components/toast/CustomToastUtils';
-import Spinner from '../spinner/Spinner';
+
+import WelcomeModal from './WelcomeModal';
+import { getCookie, removeCookie } from './utils/cookie';
+import { useAuthStore } from '../store/auth';
+import Spinner from '@/shared/components/spinner/Spinner';
function LoginRedirectHandler() {
const pathname = usePathname();
const router = useRouter();
const { user, updateUser } = useAuthStore();
- const { openWelcomeModal } = useModalStore();
const [loading, setLoading] = useState(true);
+ const [welcomeModalOpen, setWelcomeModalOpen] = useState(false);
useEffect(() => {
if (!user && loading) {
@@ -32,15 +35,28 @@ function LoginRedirectHandler() {
useEffect(() => {
if (!user || loading) return;
- const preLoginPath = sessionStorage.getItem('preLoginPath') || '/';
+ const preLoginPath = getCookie('preLoginPath') || '/';
+ console.log(preLoginPath);
+ // 첫 유저일 경우 모달 오픈
if (pathname.startsWith('/login/first-user')) {
- openWelcomeModal(user.nickname);
- } else if (pathname.startsWith('/login/success')) {
+ setWelcomeModalOpen(true);
+ }
+ // 기존 유저일 경우
+ else if (pathname.startsWith('/login/success')) {
customToast.success(`${user.nickname}님 \n 로그인 성공 🎉`);
router.replace(preLoginPath);
+ removeCookie('preLoginPath');
}
- }, [pathname, user, router, openWelcomeModal, loading]);
+ }, [pathname, user, loading, router]);
+
+ // 환영 모달 닫힐 때 이동
+ const handleCloseWelcomeModal = () => {
+ setWelcomeModalOpen(false);
+ const preLoginPath = getCookie('preLoginPath') || '/';
+ removeCookie('preLoginPath');
+ router.replace(preLoginPath);
+ };
if (loading) {
return (
@@ -50,6 +66,17 @@ function LoginRedirectHandler() {
);
}
- return null;
+ return (
+ <>
+ {/* 첫 유저 모달 */}
+ {user && (
+
+ )}
+ >
+ );
}
export default LoginRedirectHandler;
diff --git a/src/shared/components/auth/Welcome.tsx b/src/domains/shared/auth/WelcomeModal.tsx
similarity index 71%
rename from src/shared/components/auth/Welcome.tsx
rename to src/domains/shared/auth/WelcomeModal.tsx
index b479480..f4cd3b1 100644
--- a/src/shared/components/auth/Welcome.tsx
+++ b/src/domains/shared/auth/WelcomeModal.tsx
@@ -6,21 +6,21 @@ import Button from '@/shared/components/button/Button';
import ModalLayout from '@/shared/components/modalPop/ModalLayout';
import Ssury from '@/shared/assets/ssury/ssury_jump.webp';
import { useRouter } from 'next/navigation';
-import { useModalStore } from '@/shared/@store/modal';
-import { useAuthStore } from '@/shared/@store/auth';
-function Welcome() {
- const router = useRouter();
- const { user } = useAuthStore();
- const { welcomeModal, closeWelcomeModal } = useModalStore();
+interface Props {
+ userNickname: string;
+ open: boolean;
+ onClose: () => void;
+}
- if (!welcomeModal.open || !user) return null;
+function Welcome({ userNickname, open, onClose }: Props) {
+ const router = useRouter();
return (
@@ -28,7 +28,7 @@ function Welcome() {
type="button"
color="purple"
onClick={() => {
- closeWelcomeModal();
+ onClose();
router.push('/recipe');
}}
>
@@ -37,7 +37,7 @@ function Welcome() {