'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 { useMainContentsController } from '@/hooks/main/useMainContentsController' import { QcastContext } from '@/app/QcastProvider' import { handleFileDown } from '@/util/board-utils' export default function MainContents({ setFaqOpen, setFaqModalNoticeNo }) { const { getMessage } = useMessage() const router = useRouter() const globalLocaleState = useRecoilValue(globalLocaleStore) const { promiseGet, get } = useAxios(globalLocaleState) //공지사항 const [recentNoticeList, setRecentNoticeList] = useState([]) //FAQ const [recentFaqList, setRecentFaqList] = useState([]) const { qcastState, setIsGlobalLoading } = useContext(QcastContext) const { fetchObjectList, initObjectList } = useMainContentsController() //첨부파일 const [fileList, setFileList] = useState([]) useEffect(() => { fetchObjectList() fetchNoticeList() fetchFaqList() //첨부파일 목록 호출 fetchArchiveList() return () => { initObjectList() } }, []) //첨부파일 목록 호출 const fetchArchiveList = async () => { const url = `/api/board/list` const params = new URLSearchParams({ schNoticeTpCd: 'QC', schNoticeClsCd: 'DOWN', startRow: 1, endRow: 2, schMainYn: 'Y', }) const apiUrl = `${url}?${params.toString()}` const resultData = await get({ url: apiUrl }) if (resultData) { if (resultData.result.code === 200) { setFileList(resultData.data) } } } //공지사항 호출 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) } } return (
{getMessage('main.content.objectList.noData2')}