'use client' import React, { useEffect, useState } from 'react' import { useRouter } from 'next/navigation' import { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil' import { modalContent, modalState, modalProps } from '@/store/modalAtom' import { sessionStore } from '@/store/commonAtom' import { useAxios } from '@/hooks/useAxios' import { globalLocaleStore } from '@/store/localeAtom' import MainContents from './main/MainContents' import { useMessage } from '@/hooks/useMessage' import { stuffSearchState } from '@/store/stuffAtom' import { useForm } from 'react-hook-form' import '@/styles/contents.scss' import ChangePasswordPop from './main/ChangePasswordPop' import { searchState } from '@/store/boardAtom' export default function MainPage() { const [sessionState, setSessionState] = useRecoilState(sessionStore) const globalLocaleState = useRecoilValue(globalLocaleStore) const { get } = useAxios(globalLocaleState) const router = useRouter() const { getMessage } = useMessage() const [searchTxt, setSearchTxt] = useState('') const [searchRadioType, setSearchRadioType] = useState('object') //컨텐츠 관련 const [saleStoreId, setSaleStoreId] = useState('') const [saleStoreName, setSaleStoreName] = useState('') const [objectList, setObjectList] = useState([]) const [businessCharger, setBusinessCharger] = useState('') const [businessChargerMail, setBusinessChargerMail] = useState('') const [businessChargerTel, setBusinessChargerTel] = useState('') const [stuffSearch, setStuffSearch] = useRecoilState(stuffSearchState) const [searchForm, setSearchForm] = useRecoilState(searchState) useEffect(() => { if (sessionState.pwdInitYn === 'Y') { fetchObjectList() } }, [sessionState]) const fetchObjectList = async () => { try { // const apiUrl = `/api/main-page/object/X167/list` const apiUrl = `/api/main-page/object/${sessionState?.storeId}/list` const res = await get({ url: apiUrl }) if (res) { setSaleStoreId(res.saleStoreId) setSaleStoreName(res.saleStoreName) setObjectList(res.objectList) setBusinessCharger(res.businessCharger) setBusinessChargerMail(res.businessChargerMail) setBusinessChargerTel(res.businessChargerTel) } } catch (error) { console.error('MAIN API fetching error:', error) } } // 엔터 이벤트 const handleByOnKeyUp = (e) => { if (e.key === 'Enter') { //물건번호 일떄 if (searchRadioType === 'object') { setStuffSearch({ ...stuffSearch, schObjectNo: searchTxt, code: 'M', }) router.push('/management/stuff') } else { setSearchForm({ ...searchForm, searchValue: searchTxt, mainFlag: 'Y' }) router.push('/community/faq') } } } // 라디오 변경 이벤트 const handleOnChangeRadio = (e) => { setSearchRadioType(e.target.value) } // 돋보기 클릭 const handleOnSubmit = () => { if (searchRadioType === 'object') { setStuffSearch({ ...stuffSearch, schObjectNo: searchTxt, code: 'M', }) router.push('/management/stuff') } else { setSearchForm({ ...searchForm, searchValue: searchTxt, mainFlag: 'Y' }) router.push('/community/faq') } } return ( <> {(sessionState?.pwdInitYn !== 'N' && ( <>
{getMessage('main.storeId')}/ {getMessage('main.storeName')}
{saleStoreId} / {saleStoreName}
{ setSearchTxt(e.target.value) }} />
)) || ( <> )} ) }