"use client"; import type { DoctorListData } from "@/features/doctor/lib/data"; import AddedButton from "@/shared/ui/added-button"; import { Button } from "@/shared/ui/button"; import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle, } from "@/shared/ui/dialog"; import { DashboardLayout } from "@/widgets/dashboard-layout/ui/DashboardLayout"; import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; import { AxiosError } from "axios"; import { Loader2 } from "lucide-react"; import { useState } from "react"; import { useNavigate } from "react-router-dom"; import { toast } from "sonner"; import { doctor_api } from "../lib/api"; import { columns } from "../lib/column"; import { DataTable } from "../lib/data-table"; const Doctor = () => { const router = useNavigate(); const queryClinent = useQueryClient(); const { data, isLoading, isError, refetch } = useQuery({ queryKey: ["doctor_list"], queryFn: () => doctor_api.list(), select(data) { return data.data.data; }, }); const { mutate: deleted, isPending: deletedPending } = useMutation({ mutationFn: ({ id }: { id: number }) => doctor_api.delete({ id }), onSuccess: () => { router("/physician"); queryClinent.refetchQueries({ queryKey: ["doctor_list"] }); setSelectedDistrict(null); setDeleteDialog(false); }, onError: (error: AxiosError) => { const data = error.response?.data as { message?: string }; const errorData = error.response?.data as { messages?: { token_class: string; token_type: string; message: string; }[]; }; const errorName = error.response?.data as { data?: { name: string[]; }; }; const message = Array.isArray(errorName.data?.name) && errorName.data.name.length ? errorName.data.name[0] : data?.message || (Array.isArray(errorData?.messages) && errorData.messages.length ? errorData.messages[0].message : undefined) || "Xatolik yuz berdi"; toast.error(message); }, }); const [deleteDialog, setDeleteDialog] = useState(false); const [selectedDistrict, setSelectedDistrict] = useState(null); const columnsProps = columns({ router: router, onDeleteClick: (district) => { setSelectedDistrict(district); setDeleteDialog(true); }, }); return (
router("/physician/added")} />

Shifokorlar ro‘yxati

{isLoading && (

Yuklanmoqda...

)} {isError && (

Ma'lumot yuklashda xatolik yuz berdi.

)} {!isLoading && !isError && (
{data && }
)}
O‘chirish

Siz haqiqatdan ham{" "} {selectedDistrict?.first_name} {selectedDistrict?.last_name} {" "} shifokorni o‘chirmoqchimisiz?

); }; export default Doctor;