'use client' import { useEffect, useState, useContext } from 'react' import ProductItem from './ProductItem' import { useMessage } from '@/hooks/useMessage' import Image from 'next/image' import dayjs from 'dayjs' import { useAxios } from '@/hooks/useAxios' import { useRecoilValue } from 'recoil' import { useRouter } from 'next/navigation' import { globalLocaleStore } from '@/store/localeAtom' import { queryStringFormatter } from '@/util/common-utils' import MainSkeleton from '../ui/MainSkeleton' import { useMainContentsController } from '@/hooks/main/useMainContentsController' import { QcastContext } from '@/app/QcastProvider' import { useSwal } from '@/hooks/useSwal' import BoardDetailModal from '../community/modal/BoardDetailModal' export default function MainContents() { const { swalFire } = useSwal() const { getMessage } = useMessage() const router = useRouter() const globalLocaleState = useRecoilValue(globalLocaleStore) const { promiseGet } = useAxios(globalLocaleState) //공지사항 const [recentNoticeList, setRecentNoticeList] = useState([]) //FAQ const [recentFaqList, setRecentFaqList] = useState([]) const { qcastState } = useContext(QcastContext) const { fetchObjectList, initObjectList } = useMainContentsController() useEffect(() => { fetchObjectList() fetchNoticeList() fetchFaqList() return () => { initObjectList() } }, []) //공지사항 호출 const fetchNoticeList = async () => { try { const param = { schNoticeTpCd: 'QC', schNoticeClsCd: 'NOTICE', startRow: 1, endRow: 1, } const noticeApiUrl = `api/board/list?${queryStringFormatter(param)}` await promiseGet({ url: noticeApiUrl }).then((res) => { if (res.status === 200) { setRecentNoticeList(res.data.data) } else { setRecentNoticeList([]) } }) } catch (error) { console.error('NOTICE fetching error:', error) } } //FAQ 호출 const fetchFaqList = async () => { try { const param = { schNoticeTpCd: 'QC', schNoticeClsCd: 'FAQ', startRow: 1, endRow: 3, } const faqApiUrl = `api/board/list?${queryStringFormatter(param)}` await promiseGet({ url: faqApiUrl, }).then((res) => { if (res.status === 200) { setRecentFaqList(res.data.data) } else { setRecentFaqList([]) } }) } catch (error) { console.error('FAQ fetching error:', error) } } // FAQ 팝업 관련 const [open, setOpen] = useState(false) const [modalNoticeNo, setModalNoticeNo] = useState('') return (
{getMessage('main.content.objectList.noData2')}