fix: solve inquiry list startRow and endRow parameters not initializing

This commit is contained in:
Dayoung 2025-05-23 13:23:12 +09:00
parent 2b8cbe1aed
commit 991cb5f0b2
5 changed files with 19 additions and 20 deletions

View File

@ -5,12 +5,15 @@ import { useState } from 'react'
export default function ListForm() {
const router = useRouter()
const { inquiryListRequest, setInquiryListRequest } = useInquiryFilterStore()
const { inquiryListRequest, setInquiryListRequest, reset } = useInquiryFilterStore()
const [searchKeyword, setSearchKeyword] = useState(inquiryListRequest.schTitle ?? '')
const handleSearch = () => {
if (searchKeyword.length >= 2) {
reset()
setInquiryListRequest({ ...inquiryListRequest, schTitle: searchKeyword })
} else {
alert('2文字以上入力してください')
}
}
const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {

View File

@ -26,19 +26,17 @@ export default function ListTable() {
const pathname = usePathname()
const { inquiryList, isLoadingInquiryList } = useInquiry()
const { inquiryListRequest, setInquiryListRequest, reset } = useInquiryFilterStore()
const { inquiryListRequest, setInquiryListRequest, reset, offset, setOffset } = useInquiryFilterStore()
const [offset, setOffset] = useState(inquiryListRequest.startRow)
const [hasMore, setHasMore] = useState(false)
const [heldInquiryList, setHeldInquiryList] = useState<InquiryList[]>([])
const { session } = useSessionStore()
useEffect(() => {
setInquiryListRequest({ ...inquiryListRequest, startRow: 1, endRow: 10 })
setHeldInquiryList([])
setOffset(1)
setHasMore(false)
setHeldInquiryList([])
}, [pathname])
useEffect(() => {
@ -47,17 +45,17 @@ export default function ListTable() {
setInquiryListRequest({ ...inquiryListRequest, storeId: session.storeId ?? '', loginId: session.userId ?? '' })
}
if (inquiryList.length > 0 && inquiryList[0].totCnt > 0) {
if (inquiryListRequest.startRow > 1) {
if (offset > 1) {
setHeldInquiryList([...heldInquiryList, ...inquiryList])
} else {
setHeldInquiryList(inquiryList)
}
setHasMore(inquiryList[0].totCnt > inquiryListRequest.endRow)
setHasMore(inquiryList[0].totCnt > offset + 9)
} else {
setHeldInquiryList([])
setHasMore(false)
}
}, [session, inquiryList, inquiryListRequest.startRow, isLoadingInquiryList])
}, [session, inquiryList])
const handleMyInquiry = () => {
setInquiryListRequest({ ...inquiryListRequest, schRegId: inquiryListRequest.schRegId ? null : session.userId })
@ -129,8 +127,7 @@ export default function ListTable() {
<LoadMoreButton
hasMore={hasMore}
onLoadMore={() => {
setInquiryListRequest({ ...inquiryListRequest, startRow: offset + 10, endRow: offset + 19 })
setOffset(inquiryListRequest.startRow)
setOffset(offset + 10)
}}
/>
</div>

View File

@ -19,16 +19,16 @@ export function useInquiry(
commonCodeList: CommonCode[]
} {
const queryClient = useQueryClient()
const { inquiryListRequest } = useInquiryFilterStore()
const { inquiryListRequest, offset } = useInquiryFilterStore()
const { session } = useSessionStore()
const { axiosInstance } = useAxios()
const { data: inquiryList, isLoading: isLoadingInquiryList } = useQuery({
queryKey: ['inquiryList', inquiryListRequest],
queryKey: ['inquiryList', inquiryListRequest, offset],
queryFn: async () => {
try {
const resp = await axiosInstance(null).get<{ data: InquiryList[] }>(`/api/qna/list`, {
params: { inquiryListRequest },
params: { inquiryListRequest, startRow: offset, endRow: offset + 9 },
})
return resp.data.data
} catch (error: any) {

View File

@ -5,6 +5,8 @@ type InquiryFilterState = {
inquiryListRequest: InquiryListRequest
setInquiryListRequest: (inquiryListRequest: InquiryListRequest) => void
reset: () => void
offset: number
setOffset: (offset: number) => void
}
export const useInquiryFilterStore = create<InquiryFilterState>((set) => ({
@ -18,8 +20,6 @@ export const useInquiryFilterStore = create<InquiryFilterState>((set) => ({
schFromDt: null,
schToDt: null,
schAnswerYn: null,
startRow: 1,
endRow: 10,
loginId: '',
},
setInquiryListRequest: (inquiryListRequest) => set({ inquiryListRequest }),
@ -35,9 +35,10 @@ export const useInquiryFilterStore = create<InquiryFilterState>((set) => ({
schFromDt: '',
schToDt: '',
schAnswerYn: null,
startRow: 1,
endRow: 10,
loginId: '',
},
offset: 1,
}),
offset: 1,
setOffset: (offset) => set({ offset }),
}))

View File

@ -8,8 +8,6 @@ export type InquiryListRequest = {
schFromDt: string | null //search start date
schToDt: string | null //search end date
schAnswerYn: string | null //search answer yn
startRow: number //start row
endRow: number //end row
loginId: string //login id
}