diff --git a/components/LoginChecker.tsx b/components/LoginChecker.tsx index 98d4676ce..5a5d17532 100644 --- a/components/LoginChecker.tsx +++ b/components/LoginChecker.tsx @@ -7,8 +7,6 @@ interface LoginCheckerProps { } export default function LoginChecker({ children }: LoginCheckerProps) { - // return <>{children}; - const [isLoading, loggedIn] = useLoginCheck(); // return <>{children}; diff --git a/components/agenda/Form/CreateTeamForm.tsx b/components/agenda/Form/CreateTeamForm.tsx index 8028b47ee..44bf36264 100644 --- a/components/agenda/Form/CreateTeamForm.tsx +++ b/components/agenda/Form/CreateTeamForm.tsx @@ -1,4 +1,5 @@ import router from 'next/router'; +import { useEffect, useState } from 'react'; import { SetterOrUpdater, useSetRecoilState } from 'recoil'; import { agendaModal } from 'types/agenda/modalTypes'; import { TeamDetailProps } from 'types/agenda/teamDetail/TeamDetailTypes'; @@ -9,10 +10,12 @@ import CheckBoxInput from 'components/agenda/Input/CheckboxInput'; import DescriptionInput from 'components/agenda/Input/DescriptionInput'; import SelectInput from 'components/agenda/Input/SelectInput'; import TitleInput from 'components/agenda/Input/TitleInput'; +import { useModal } from 'components/agenda/modal/useModal'; +import AgendaLoading from 'components/agenda/utils/AgendaLoading'; +import useAgendaTeamKey from 'hooks/agenda/useAgendaTeamKey'; import useFetchRequest from 'hooks/agenda/useFetchRequest'; import styles from 'styles/agenda/Form/Form.module.scss'; -import { useModal } from '../modal/useModal'; - +AgendaLoading; const teamlocation = ['SEOUL', 'GYEONGSAN', 'NIX']; interface CreateTeamFormProps { location: AgendaLocation | null; @@ -38,6 +41,7 @@ const transformFormData = (formData: FormData) => { return data; }; + const teamdataToMsg = (data: { [key: string]: string }) => { const msgdata: { [key: string]: string } = {}; let msg = ''; @@ -59,7 +63,8 @@ const SubmitTeamForm = ( agendaKey: string, openModal: (props: agendaModal) => void, teamKey?: string, - onProceed?: () => void + onProceed?: () => void, + handleConvert?: () => void ) => { target.preventDefault(); @@ -112,8 +117,11 @@ const SubmitTeamForm = ( (res: any) => { if (isEdit) { onProceed && onProceed(); + handleConvert && handleConvert(); } else { - router.push(`/agenda/${agendaKey}/${res.teamKey}`); + router.push( + `/agenda/detail/team?agenda_key=${agendaKey}&team_key=${res.teamKey}` + ); } }, (err: string) => { @@ -133,9 +141,21 @@ const CreateTeamForm = ({ handleConvert, }: CreateTeamFormProps) => { const sendRequest = useFetchRequest().sendRequest; - const { teamUID } = router.query; + const teamUID = useAgendaTeamKey(); const { openModal } = useModal(); const setSnackBar = useSetRecoilState(toastState); + const [flag, setFlag] = useState(false); + + useEffect(() => { + if (teamUID) { + // useAgendaTeamKey()로 teamUID 가져왔을 시 + setFlag(true); + } + }, [teamUID]); + + if (!flag) { + return ; + } const onSubmit = (e: React.FormEvent) => { SubmitTeamForm( @@ -146,7 +166,8 @@ const CreateTeamForm = ({ agendaKey, openModal, teamUID as string, - onProceed + onProceed, + handleConvert ); }; diff --git a/components/agenda/Form/SubmitAgendaForm.tsx b/components/agenda/Form/SubmitAgendaForm.tsx index 9f9499ed7..3320d3b3a 100644 --- a/components/agenda/Form/SubmitAgendaForm.tsx +++ b/components/agenda/Form/SubmitAgendaForm.tsx @@ -148,7 +148,7 @@ const SubmitAgendaForm = async ( onProceed && onProceed(); if (!isEdit) { console.log(res.data.agendaKey); - router.push(`/agenda/${res.data.agendaKey}`); + router.push(`/agenda/detail?agenda_key=${res.data.agendaKey}`); } }) .catch((err) => { diff --git a/components/agenda/Home/AgendaList.tsx b/components/agenda/Home/AgendaList.tsx index 71a45a832..105f06102 100644 --- a/components/agenda/Home/AgendaList.tsx +++ b/components/agenda/Home/AgendaList.tsx @@ -56,7 +56,7 @@ const AgendaListItem = ({ setSelectedItem?: (key: number) => void; }) => { const router = useRouter(); - const href = `/agenda/${agendaInfo.agendaKey}`; + const href = `/agenda/detail?agenda_key=${agendaInfo.agendaKey}`; return ( - - {agendaData ? ( <> { const router = useRouter(); - const { agendaKey } = router.query; - const agendaInfo = useAgendaInfo(agendaKey as string); + const agendaKey = useAgendaKey(); + + const agendaInfo = useFetchGet(`/`, { + agenda_key: agendaKey, + }).data; const backPage = () => { router.back(); }; + if (!agendaKey || !agendaInfo) { + return ; + } return (
diff --git a/pages/agenda/[agendaKey]/[teamUID]/index.tsx b/pages/agenda/detail/team/index.tsx similarity index 84% rename from pages/agenda/[agendaKey]/[teamUID]/index.tsx rename to pages/agenda/detail/team/index.tsx index 203445ffa..74b3e314f 100644 --- a/pages/agenda/[agendaKey]/[teamUID]/index.tsx +++ b/pages/agenda/detail/team/index.tsx @@ -6,15 +6,18 @@ import { TeamDetailProps } from 'types/agenda/teamDetail/TeamDetailTypes'; import { Authority } from 'constants/agenda/agenda'; import AgendaInfo from 'components/agenda/agendaDetail/AgendaInfo'; import TeamInfo from 'components/agenda/teamDetail/TeamInfo'; +import AgendaLoading from 'components/agenda/utils/AgendaLoading'; import { useUser } from 'hooks/agenda/Layout/useUser'; +import useAgendaKey from 'hooks/agenda/useAgendaKey'; +import useAgendaTeamKey from 'hooks/agenda/useAgendaTeamKey'; import useFetchGet from 'hooks/agenda/useFetchGet'; import useFetchRequest from 'hooks/agenda/useFetchRequest'; import styles from 'styles/agenda/TeamDetail/TeamDetail.module.scss'; export default function TeamDetail() { const router = useRouter(); - const { agendaKey } = router.query; - const { teamUID } = router.query; + const agendaKey = useAgendaKey(); + const teamUID = useAgendaTeamKey(); /** * API GET DATA @@ -78,10 +81,9 @@ export default function TeamDetail() { () => { // 팀 폭파 API : 아젠다 디테일 페이지로 이동 if (url === 'team/cancel') { - router.push(`/agenda/${agendaKey}`); + router.push(`/agenda/detail?agenda_key=${agendaKey}`); } else { // 그 외 API : 팀 상세 데이터 갱신 - getTeamDetail(); } }, @@ -91,16 +93,20 @@ export default function TeamDetail() { ); }; + if (!agendaKey || !agendaData || !teamDetail) { + return ; + } return (
- {agendaData ? ( - + {agendaData && ( + - ) : ( - '' )} - {teamDetail && agendaData ? ( + {teamDetail && agendaData && ( - ) : ( - '' )}
); diff --git a/pages/agenda/profile/index.tsx b/pages/agenda/profile/index.tsx index 522fcf62f..3e25b5d61 100644 --- a/pages/agenda/profile/index.tsx +++ b/pages/agenda/profile/index.tsx @@ -4,7 +4,7 @@ import { useUser } from 'hooks/agenda/Layout/useUser'; const Index = () => { const router = useRouter(); const { intraId } = useUser() || {}; - router.push('/agenda/profile/' + intraId); + router.push(`/agenda/profile/user?id=${intraId}`); }; export default Index; diff --git a/pages/agenda/profile/[intraId]/index.tsx b/pages/agenda/profile/user.tsx similarity index 95% rename from pages/agenda/profile/[intraId]/index.tsx rename to pages/agenda/profile/user.tsx index c7205a312..9ca5368ee 100644 --- a/pages/agenda/profile/[intraId]/index.tsx +++ b/pages/agenda/profile/user.tsx @@ -7,6 +7,7 @@ import CurrentList from 'components/agenda/Profile/CurrentList'; import HistoryList from 'components/agenda/Profile/HistoryList'; import ProfileCard from 'components/agenda/Profile/ProfileCard'; import Ticket from 'components/agenda/Ticket/Ticket'; +import AgendaLoading from 'components/agenda/utils/AgendaLoading'; import PageNation from 'components/Pagination'; import { useUser } from 'hooks/agenda/Layout/useUser'; import useFetchGet from 'hooks/agenda/useFetchGet'; @@ -14,8 +15,7 @@ import usePageNation from 'hooks/agenda/usePageNation'; import styles from 'styles/agenda/Profile/AgendaProfile.module.scss'; const AgendaProfile = () => { - const router = useRouter(); - const { intraId } = router.query; // URL 상의 intraId + const intraId = useRouter().query.id; const userIntraId = useUser()?.intraId; // 현재 나의 intraId const isMyProfile = intraId === userIntraId ? true : false; @@ -54,8 +54,9 @@ const AgendaProfile = () => { url: `/profile/history/list/${intraId}`, }); - console.log(profileData); - + if (!intraId || !userIntraId) { + return ; + } return ( <>
diff --git a/stories/agenda/Form/CreateTeam.stories.tsx b/stories/agenda/Form/CreateTeam.stories.tsx index 013af80b0..d90c7c81e 100644 --- a/stories/agenda/Form/CreateTeam.stories.tsx +++ b/stories/agenda/Form/CreateTeam.stories.tsx @@ -1,5 +1,7 @@ +/** router 쿼리로 바꾸는 도중에 에러 떠서 모두 주석 처리 함 */ + import type { Meta, StoryObj } from '@storybook/react'; -import CreateTeam from 'pages/agenda/[agendaKey]/create-team'; +import CreateTeam from 'pages/agenda/detail/team/create'; const meta: Meta = { title: 'Agenda/Form/create-team', diff --git a/stories/agenda/Form/SubmitAgendaResult.stories.tsx b/stories/agenda/Form/SubmitAgendaResult.stories.tsx index 90c86c0c4..39f63d2e9 100644 --- a/stories/agenda/Form/SubmitAgendaResult.stories.tsx +++ b/stories/agenda/Form/SubmitAgendaResult.stories.tsx @@ -1,5 +1,5 @@ import type { Meta, StoryObj } from '@storybook/react'; -import SubmitAgendaResult from 'pages/agenda/[agendaKey]/host/result'; +import SubmitAgendaResult from 'pages/agenda/detail/host/result'; const meta: Meta = { title: 'Agenda/Form/submit-agenda-result', diff --git a/styles/agenda/utils/AgendaLoading.module.scss b/styles/agenda/utils/AgendaLoading.module.scss new file mode 100644 index 000000000..be7601a82 --- /dev/null +++ b/styles/agenda/utils/AgendaLoading.module.scss @@ -0,0 +1,5 @@ +@import 'styles/agenda/common.scss'; + +.contianer { + @include container(1); +}