'use client'
import { useRouter, useSearchParams } from 'next/navigation'
import { useState } from 'react'
import {
PageContainer,
ShowWrapper,
EmptyUsersList,
TableSkeleton,
UsersTable,
ConfirmDeleteModal,
HandleResponse,
Pagination,
} from '@/components'
import { useGetUsersQuery, useDeleteUserMutation } from '@/store/services'
import { useDisclosure, useChangeRoute, useTitle } from '@/hooks'
export default function UsersPage() {
useTitle('用户管理')
//? Assets
const { replace } = useRouter()
const searchParams = useSearchParams()
const page = searchParams.get('page')
const changeRoute = useChangeRoute()
//? Modals
const [isShowConfirmDeleteModal, confirmDeleteModalHandlers] = useDisclosure()
//? State
const [deleteInfo, setDeleteInfo] = useState({
id: '',
})
//? Get User Data
const { data, isSuccess, isFetching, error, isError, refetch } = useGetUsersQuery({
page: page || 1,
})
//? Delete User Query
const [
deleteUser,
{
isSuccess: isSuccess_delete,
isLoading: isLoading_delete,
isError: isError_delete,
error: error_delete,
data: data_delete,
},
] = useDeleteUserMutation()
//? Handlers
const deleteUserHandler = id => {
setDeleteInfo({ id })
confirmDeleteModalHandlers.open()
}
const onConfirmUserDelete = () => deleteUser({ id: deleteInfo.id })
const onCancelUserDelete = () => {
confirmDeleteModalHandlers.close()
setDeleteInfo({ id: '' })
}
return (
<>
{/* Handle Delete Response */}
{(isSuccess_delete || isError_delete) && (
{
onCancelUserDelete()
}}
onError={() => {
onCancelUserDelete()
}}
/>
)}
}
loadingComponent={}
>
{data?.data?.usersLength > 5 && (
)}
>
)
}