Skip to content

Commit

Permalink
Merge pull request codestates-seb#306 from codestates-seb/revert-304-…
Browse files Browse the repository at this point in the history
…develop

[FE] ♻️ Signin, Signup, Profile, History 컴포넌트 및 페이지 리팩토링
  • Loading branch information
nalsae authored Oct 17, 2023
2 parents 7620738 + 05b75ec commit eef5c34
Show file tree
Hide file tree
Showing 72 changed files with 1,007 additions and 1,624 deletions.
85 changes: 0 additions & 85 deletions client/src/api/axios.ts

This file was deleted.

30 changes: 12 additions & 18 deletions client/src/app/history/[id]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,14 @@

import { motion } from 'framer-motion';

import useModalStore, { ModalType } from '@/stores/modalStore';
import useSignModalStore from '@/stores/signModalStore';

import {
ResignModal,
ConfirmModal,
SuccessedModal,
FailureModal,
HistoryBox,
} from '@/components/history';
import { Footer } from '@/components/common';
import ResignModal from '@/components/history/ResignModal';
import ConfirmModal from '@/components/history/ConfirmModal';
import SuccessedModal from '@/components/history/SuccessedModal';
import FailureModal from '@/components/history/FailureModal';
import HistoryBox from '@/components/history/HistoryBox';
import Footer from '@/components/common/Footer';

import { MOUNT_ANIMATION_VALUES } from '@/constants/values';

Expand All @@ -20,14 +18,7 @@ interface HistoryProps {
}

export default function History({ params }: HistoryProps) {
const { isOpen, type } = useModalStore();

const renderModal = (type: ModalType) => {
if (type === 'ResignModal') return <ResignModal />;
if (type === 'ConfirmModal') return <ConfirmModal />;
if (type === 'SuccessedModal') return <SuccessedModal />;
if (type === 'FailureModal') return <FailureModal />;
};
const currentState = useSignModalStore((state) => state.currentState);

return (
<>
Expand All @@ -38,7 +29,10 @@ export default function History({ params }: HistoryProps) {
className="flex flex-col justify-center items-center h-auto min-h-full pb-[343px] mx-4">
<HistoryBox paramsId={params.id} />

{isOpen && renderModal(type)}
{currentState === 'ResignModal' && <ResignModal />}
{currentState === 'ConfirmModal' && <ConfirmModal />}
{currentState === 'FailureModal' && <FailureModal />}
{currentState === 'SuccessedModal' && <SuccessedModal />}
</motion.div>
<Footer />
</>
Expand Down
4 changes: 2 additions & 2 deletions client/src/app/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import { getScrollTop } from '@/utils/getScrollTop';
export default function Home() {
const isClient = useClient();

const { isEmailLogin, isGoogleLogin } = useUserStore();
const { isLogin, isGoogleLogin } = useUserStore();

const handleClick = () => {
const top = getScrollTop(window.innerWidth);
Expand Down Expand Up @@ -69,7 +69,7 @@ export default function Home() {
<ServiceInfo key={index} order={index} />
))}
</div>
{!(isEmailLogin || isGoogleLogin) && (
{!(isLogin || isGoogleLogin) && (
<motion.section
initial={{ y: 100, opacity: 0 }}
whileInView={{ y: 0, opacity: 1 }}
Expand Down
14 changes: 6 additions & 8 deletions client/src/app/post/[id]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,10 @@ import useUserStore from '@/stores/userStore';

import useEffectOnce from '@/hooks/useEffectOnce';

import {
PageTitle,
PostCountInfo,
Screws,
LoadingNotice,
ErrorMessage,
Footer,
} from '@/components/common';
import PostDeleteModal from '@/components/post/PostDeleteModal';
import PageTitle from '@/components/common/PageTitle';
import PostCountInfo from '@/components/common/PostCountInfo';
import Screws from '@/components/common/Screws';
import Comment from '@/components/post/Comment';
import CommentForm from '@/components/post/CommentForm';
import PostContent from '@/components/post/PostContent';
Expand All @@ -30,6 +25,9 @@ import PostImage from '@/components/post/PostImage';
import PostProfile from '@/components/post/PostProfile';
import HashTags from '@/components/post/HashTags';
import CommentDeleteModal from '@/components/post/CommentDeleteModal';
import LoadingNotice from '@/components/common/LoadingNotice';
import ErrorMessage from '@/components/common/ErrorMessage';
import Footer from '@/components/common/Footer';

import { CommentDataInfo, PostDataInfo } from '@/types/data';

Expand Down
43 changes: 17 additions & 26 deletions client/src/app/profile/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,38 +4,24 @@ import { notFound } from 'next/navigation';

import { motion } from 'framer-motion';

import useSignModalStore from '@/stores/signModalStore';
import useUserStore from '@/stores/userStore';
import useModalStore, { ModalType } from '@/stores/modalStore';

import useEffectOnce from '@/hooks/useEffectOnce';

import { ProfileBox, ChangeProfileModal } from '@/components/profile';
import {
ResignModal,
ConfirmModal,
SuccessedModal,
FailureModal,
} from '@/components/history';
import { Footer } from '@/components/common';
import ProfileBox from '@/components/profile/ProfileBox';
import ChangePasswordModal from '@/components/profile/ChangePasswordModal';
import ChangeNicknameModal from '@/components/profile/ChangeNicknameModal';
import ConfirmModal from '@/components/history/ConfirmModal';
import ResignModal from '@/components/history/ResignModal';
import FailureModal from '@/components/history/FailureModal';
import SuccessedModal from '@/components/history/SuccessedModal';
import Footer from '@/components/common/Footer';

import { ADMIN_USER_ID, MOUNT_ANIMATION_VALUES } from '@/constants/values';
import useEffectOnce from '@/hooks/useEffectOnce';

export default function Profile() {
const currentState = useSignModalStore((state) => state.currentState);
const { userId } = useUserStore();
const { isOpen, type } = useModalStore();

const renderModal = (type: ModalType) => {
if (type === 'ChangePasswordModal')
return <ChangeProfileModal type="password" />;
if (type === 'ChangeNicknameModal')
return <ChangeProfileModal type="nickname" />;
if (type === 'ChangeImageModal') return <ChangeProfileModal type="image" />;

if (type === 'ResignModal') return <ResignModal />;
if (type === 'ConfirmModal') return <ConfirmModal />;
if (type === 'SuccessedModal') return <SuccessedModal />;
if (type === 'FailureModal') return <FailureModal />;
};

useEffectOnce(() => {
userId === ADMIN_USER_ID && notFound();
Expand All @@ -50,7 +36,12 @@ export default function Profile() {
className="flex flex-col justify-center items-center h-auto min-h-full pb-[343px] mx-4">
<ProfileBox />

{isOpen && renderModal(type)}
{currentState === 'ChangePasswordModal' && <ChangePasswordModal />}
{currentState === 'ChangeNicknameModal' && <ChangeNicknameModal />}
{currentState === 'ConfirmModal' && <ConfirmModal />}
{currentState === 'ResignModal' && <ResignModal />}
{currentState === 'FailureModal' && <FailureModal />}
{currentState === 'SuccessedModal' && <SuccessedModal />}
</motion.div>
<Footer />
</>
Expand Down
24 changes: 9 additions & 15 deletions client/src/app/signin/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,15 @@

import { motion } from 'framer-motion';

import useModalStore, { ModalType } from '@/stores/modalStore';
import useSignModalStore from '@/stores/signModalStore';

import {
SigninIntro,
FindPasswordModal,
SuccessedModal,
FailureModal,
} from '@/components/signin';
import SigninIntro from '@/components/signin/SigninIntro';
import FindPasswordModal from '@/components/signin/FindPasswordModal';
import SuccessedModal from '@/components/signin/SuccessedModal';
import FailureModal from '@/components/signin/FailureModal';

export default function Signin() {
const { isOpen, type } = useModalStore();

const renderModal = (type: ModalType) => {
if (type === 'FindPasswordModal') return <FindPasswordModal />;
if (type === 'SuccessedModal') return <SuccessedModal />;
if (type === 'FailureModal') return <FailureModal />;
};
const currentState = useSignModalStore((state) => state.currentState);

return (
<motion.div
Expand All @@ -28,7 +20,9 @@ export default function Signin() {
className="flex flex-col justify-center items-center h-full mx-4 pb-[40px]">
<SigninIntro />

{isOpen && renderModal(type)}
{currentState === 'FindPasswordModal' && <FindPasswordModal />}
{currentState === 'SuccessedModal' && <SuccessedModal />}
{currentState === 'FailureModal' && <FailureModal />}
</motion.div>
);
}
16 changes: 7 additions & 9 deletions client/src/app/signup/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,14 @@

import { motion } from 'framer-motion';

import useModalStore, { ModalType } from '@/stores/modalStore';
import useSignModalStore from '@/stores/signModalStore';

import { AuthEmailModal, FailureModal, SignupIntro } from '@/components/signup';
import AuthEmailModal from '@/components/signup/AuthEmailModal';
import FailureModal from '@/components/signup/FailureModal';
import SignupIntro from '@/components/signup/SignupIntro';

export default function Signup() {
const { isOpen, type } = useModalStore();

const renderModal = (type: ModalType) => {
if (type === 'AuthEmailModal') return <AuthEmailModal />;
if (type === 'FailureModal') return <FailureModal />;
};
const currentState = useSignModalStore((state) => state.currentState);

return (
<motion.div
Expand All @@ -22,7 +19,8 @@ export default function Signup() {
className="flex flex-col justify-center items-center h-full mx-4 pb-[40px]">
<SignupIntro />

{isOpen && renderModal(type)}
{currentState === 'AuthEmailModal' && <AuthEmailModal />}
{currentState === 'Not Code' && <FailureModal />}
</motion.div>
);
}
6 changes: 3 additions & 3 deletions client/src/components/board/RankBoard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 +50,11 @@ export default function RankBoard() {
variants={MOUNT_ANIMATION_VALUES}
initial="initial"
animate="animate"
className="pt-[64px] w-[448px] h-[268px] flex flex-col items-center bg-contain bg-center bg-no-repeat bg-[url('/assets/img/bg_board_lg.png')] drop-shadow-[0_4px_4px_rgba(0,0,0,0.25)] scale-100 max-[604px]:w-[313px] max-[604px]:-mb-12 max-[604px]:px-6 max-[604px]:pt-[78px]">
<h2 className="text-2xl leading-6 text-brown-10 font-bold max-[604px]:text-lg">
className="pt-[60px] w-[448px] h-[268px] flex flex-col items-center bg-contain bg-center bg-no-repeat bg-[url('/assets/img/bg_board_lg.png')] drop-shadow-[0_4px_4px_rgba(0,0,0,0.25)] scale-100 max-[604px]:w-[313px] max-[604px]:-mb-3 max-[604px]:px-6 max-[604px]:pt-[78px]">
<h2 className="text-2xl leading-6 text-brown-10 font-bold max-[604px]:text-xl">
이주의 좋아요 순위
</h2>
<div className="pt-7 pb-5 w-full max-w-[720px] flex flex-col items-center gap-2 text-base leading-4 text-brown-10 font-normal whitespace-nowrap overflow-x-hidden max-[604px]:text-xs max-[604px]:gap-1 max-[604px]:pt-1">
<div className="py-5 w-full max-w-[720px] flex flex-col items-center gap-2 text-base leading-4 text-brown-10 font-normal whitespace-nowrap overflow-x-hidden max-[604px]:text-xs max-[604px]:gap-1 max-[604px]:pt-1">
{boardRank.slice(0, 3).map((board) => {
return (
<Link
Expand Down
11 changes: 5 additions & 6 deletions client/src/components/common/Header.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,7 @@ export default function Header() {
const [isProfileHover, setIsProfileHover] = useState(false);
const [isMenuHover, setIsMenuHover] = useState(false);

const { userId, isEmailLogin, isGoogleLogin, profileImageUrl } =
useUserStore();
const { userId, isLogin, isGoogleLogin, profileImageUrl } = useUserStore();
const getSigninForm = useSignStore((state) => state.getSigninForm);

const isClient = useClient();
Expand Down Expand Up @@ -73,7 +72,7 @@ export default function Header() {
<li className="max-[480px]:hidden">
<HeaderLink
location={
isClient && (isEmailLogin || isGoogleLogin)
isClient && (isLogin || isGoogleLogin)
? `/garden/${userId}`
: '/signin'
}
Expand All @@ -91,15 +90,15 @@ export default function Header() {
<li className="max-[480px]:hidden">
<HeaderLink
location={
isClient && (isEmailLogin || isGoogleLogin)
isClient && (isLogin || isGoogleLogin)
? `/leafs/${userId}`
: '/signin'
}
content="activity"
title="leafCard"
/>
</li>
{isClient && (isEmailLogin || isGoogleLogin) ? (
{isClient && (isLogin || isGoogleLogin) ? (
<li
onMouseOver={() => setIsProfileHover(true)}
onMouseLeave={() => setIsProfileHover(false)}>
Expand All @@ -110,7 +109,7 @@ export default function Header() {
width={36}
height={36}
/>
{isProfileHover && (isEmailLogin || isGoogleLogin) && (
{isProfileHover && (isLogin || isGoogleLogin) && (
<motion.div
initial={{ opacity: 0 }}
animate={{ opacity: 1 }}
Expand Down
Loading

0 comments on commit eef5c34

Please sign in to comment.