'use client' import { useEffect, useState } from 'react' import LoadMoreButton from '../../LoadMoreButton' import { useInquiry } from '@/hooks/useInquiry' import { InquiryList } from '@/types/Inquiry' import { usePathname, useRouter } from 'next/navigation' import { useInquiryFilterStore } from '@/store/inquiryFilterStore' import { useSessionStore } from '@/store/session' import ListForm from './ListForm' const badgeStyle = [ { id: 'Y', label: '回答完了', color: 'orange', }, { id: 'N', label: '回答待ち', color: 'blue', }, ] export default function ListTable() { const router = useRouter() const pathname = usePathname() const { inquiryList, isLoadingInquiryList } = useInquiry(undefined, true) const { inquiryListRequest, setInquiryListRequest, reset, offset, setOffset } = useInquiryFilterStore() const [hasMore, setHasMore] = useState(false) const [heldInquiryList, setHeldInquiryList] = useState([]) const { session } = useSessionStore() useEffect(() => { setOffset(1) setHeldInquiryList([]) }, [pathname]) useEffect(() => { if (!session.isLoggedIn || isLoadingInquiryList) return if (session.isLoggedIn) { setInquiryListRequest({ ...inquiryListRequest, storeId: session.storeId ?? '', loginId: session.userId ?? '' }) } if (inquiryList.length > 0 && inquiryList[0].totCnt > 0) { if (offset > 1) { setHeldInquiryList([...heldInquiryList, ...inquiryList]) } else { setHeldInquiryList(inquiryList) } setHasMore(inquiryList[0].totCnt > offset + 9) } else { setHeldInquiryList([]) setHasMore(false) } }, [session, inquiryList]) /** 내 문의 필터 처리 - 체크 시 자신의 문의 목록만 조회 */ const handleMyInquiry = () => { setOffset(1) setInquiryListRequest({ ...inquiryListRequest, schRegId: inquiryListRequest.schRegId ? null : session.userId, }) } /** 답변 여부 필터 처리리 */ const handleFilter = (e: React.ChangeEvent) => { switch (e.target.value) { case 'N': setInquiryListRequest({ ...inquiryListRequest, schAnswerYn: 'N' }) break case 'Y': setInquiryListRequest({ ...inquiryListRequest, schAnswerYn: 'Y' }) break default: reset() break } } return ( <>
合計 {heldInquiryList.length > 0 ? heldInquiryList[0].totCnt : 0}
    {heldInquiryList.length === 0 || (heldInquiryList.length > 0 && heldInquiryList[0].totCnt === 0) ? (
  • 照会されたデータがありません。
  • ) : ( heldInquiryList.map((inquiry: InquiryList) => (
  • router.push(`/inquiry/${inquiry.qnaNo}`)}>
    {inquiry.qnaClsLrgCd} {inquiry.qnaClsMidCd} {inquiry.qnaClsSmlCd}
    {inquiry.qstTitle}
    {inquiry.regDt}
    badge.id === inquiry.answerYn)?.color}`}> {badgeStyle.find((badge) => badge.id === inquiry.answerYn)?.label}
  • )) )}
{ setOffset(offset + 10) }} />
) }