diff --git a/src/app/survey-sale/basic-info/page.tsx b/src/app/survey-sale/basic-info/page.tsx index 20cbeb8..3df482f 100644 --- a/src/app/survey-sale/basic-info/page.tsx +++ b/src/app/survey-sale/basic-info/page.tsx @@ -1,6 +1,16 @@ +'use client' + +import { useEffect } from 'react' +import { useSurveySaleTabState } from '@/store/surveySaleTabState' import BasicForm from '@/components/survey-sale/detail/BasicForm' export default function page() { + const { setBasicInfoSelected } = useSurveySaleTabState() + + useEffect(() => { + setBasicInfoSelected() + }, []) + return ( <> diff --git a/src/app/survey-sale/roof-info/page.tsx b/src/app/survey-sale/roof-info/page.tsx index 2bdfea5..b0a1b98 100644 --- a/src/app/survey-sale/roof-info/page.tsx +++ b/src/app/survey-sale/roof-info/page.tsx @@ -1,6 +1,16 @@ +'use client' + +import { useEffect } from 'react' +import { useSurveySaleTabState } from '@/store/surveySaleTabState' import RoofInfoForm from '@/components/survey-sale/detail/RoofInfoForm' export default function page() { + const { setRoofInfoSelected } = useSurveySaleTabState() + + useEffect(() => { + setRoofInfoSelected() + }, []) + return ( <> diff --git a/src/components/survey-sale/common/NavTab.tsx b/src/components/survey-sale/common/NavTab.tsx index 7d763cc..8029afd 100644 --- a/src/components/survey-sale/common/NavTab.tsx +++ b/src/components/survey-sale/common/NavTab.tsx @@ -1,21 +1,44 @@ 'use client' -import { usePathname } from 'next/navigation' +import { useSurveySaleTabState } from '@/store/surveySaleTabState' +import { usePathname, useRouter } from 'next/navigation' +import { useEffect } from 'react' export default function NavTab() { + const router = useRouter() const pathname = usePathname() if (pathname === '/survey-sale') { return null } + const { basicInfoSelected, roofInfoSelected, reset } = useSurveySaleTabState() + + useEffect(() => { + return () => { + reset() + } + }, []) + + const handleBasicInfoClick = () => { + router.push('/survey-sale/basic-info') + } + + const handleRoofInfoClick = () => { + router.push('/survey-sale/roof-info') + } + return ( <>
- - + +
diff --git a/src/components/ui/common/Header.tsx b/src/components/ui/common/Header.tsx index 4a6056f..5c44695 100644 --- a/src/components/ui/common/Header.tsx +++ b/src/components/ui/common/Header.tsx @@ -3,7 +3,7 @@ import { useEffect, useState } from 'react' import Link from 'next/link' -import { usePathname } from 'next/navigation' +import { usePathname, useRouter } from 'next/navigation' import { Swiper, SwiperSlide } from 'swiper/react' @@ -17,6 +17,7 @@ import 'swiper/css' // } export default function Header({ name }: HeaderProps) { + const router = useRouter() const pathname = usePathname() const [headerAct, setHeaderAct] = useState(false) const [isShowBackBtn, setIsShowBackBtn] = useState(false) @@ -38,7 +39,7 @@ export default function Header({ name }: HeaderProps) {
{isShowBackBtn && (
- +
)}

diff --git a/src/store/surveySaleTabState.ts b/src/store/surveySaleTabState.ts new file mode 100644 index 0000000..f0ab766 --- /dev/null +++ b/src/store/surveySaleTabState.ts @@ -0,0 +1,26 @@ +import { create } from 'zustand' + +type SurveySaleTabState = { + basicInfoSelected: boolean + roofInfoSelected: boolean + setBasicInfoSelected: () => void + setRoofInfoSelected: () => void + reset: () => void +} + +type InitialState = { + basicInfoSelected: boolean + roofInfoSelected: boolean +} + +const initialState: InitialState = { + basicInfoSelected: true, + roofInfoSelected: false, +} + +export const useSurveySaleTabState = create((set) => ({ + ...initialState, + setBasicInfoSelected: () => set((state) => ({ ...state, basicInfoSelected: true, roofInfoSelected: false })), + setRoofInfoSelected: () => set((state) => ({ ...state, basicInfoSelected: false, roofInfoSelected: true })), + reset: () => set(initialState), +}))