'use client' import { useState } from 'react' import { useDeleteReviewMutation, useGetReviewsQuery } from '@/store/services' import { Pagination, ReveiwCard, ShowWrapper, EmptyCommentsList, ConfirmDeleteModal, PageContainer, HandleResponse, ReveiwSkeleton, } from 'components' import { useDisclosure, useChangeRoute } from 'hooks' import { useTitle, useUrlQuery } from '@/hooks' const Reviews = () => { useTitle('我的评价') //? Assets const query = useUrlQuery() const changeRoute = useChangeRoute() //? Modals const [isShowConfirmDeleteModal, confirmDeleteModalHandlers] = useDisclosure() //? States const [deleteInfo, setDeleteInfo] = useState({ id: '', }) //? Queries //* Delete Review const [ deleteReview, { isSuccess: isSuccessDelete, isError: isErrorDelete, error: errorDelete, data: dataDelete, isLoading: isLoadingDelete, }, ] = useDeleteReviewMutation() //* Get Reviews const { data, isSuccess, isFetching, error, isError, refetch } = useGetReviewsQuery({ page: query.page ? +query.page : 1, }) //? Handlers const deleteReviewHandler = id => { setDeleteInfo({ id }) confirmDeleteModalHandlers.open() } const onConfirmDelete = () => deleteReview({ id: deleteInfo.id }) const onCancelDelete = () => { setDeleteInfo({ id: '' }) confirmDeleteModalHandlers.close() } const onSuccessDelete = () => { confirmDeleteModalHandlers.close() setDeleteInfo({ id: '' }) } const onErrorDelete = () => { confirmDeleteModalHandlers.close() setDeleteInfo({ id: '' }) } //? Render(s) return ( <> {/* Handle Delete Response */} {(isSuccessDelete || isErrorDelete) && ( )} } loadingComponent={} > {data && data.data.reviews.map(item => ( ))} {data && data?.data?.reviewsLength > 5 && ( )} > ) } export default Reviews