update new api reques and response

This commit is contained in:
Samandar Turgunboyev
2025-12-05 17:47:11 +05:00
parent 21725762c6
commit db6bfa7e40
30 changed files with 1755 additions and 262 deletions

View File

@@ -0,0 +1,71 @@
import { support_api } from "@/features/support/lib/api";
import { columnsSupport } from "@/features/support/lib/column";
import { DataTableSupport } from "@/features/support/lib/data-table";
import SendSupport from "@/features/support/ui/SendSupport";
import AddedButton from "@/shared/ui/added-button";
import { Skeleton } from "@/shared/ui/skeleton";
import { DashboardLayout } from "@/widgets/dashboard-layout/ui";
import { useQuery } from "@tanstack/react-query";
import { useState } from "react";
const SupportList = () => {
const [showMainModal, setShowMainModal] = useState<boolean>(false);
const { data, isLoading, isError } = useQuery({
queryKey: ["support_list"],
queryFn: () => support_api.list(),
select(data) {
return data.data.data;
},
});
const columns = columnsSupport();
return (
<DashboardLayout link="/">
<AddedButton onClick={() => setShowMainModal(true)} />
<div className="space-y-6">
<h1 className="text-3xl font-bold">Yordam so'rovlari</h1>
{isLoading && (
<div className="flex justify-center items-center h-64">
<span className="text-gray-500">Yuklanmoqda...</span>
</div>
)}
{isError && (
<div className="flex justify-center items-center h-64">
<span className="text-red-500">
Xatolik yuz berdi. Iltimos, qayta urinib koring.
</span>
</div>
)}
{isLoading ? (
<div className="space-y-3">
{[1, 2, 3].map((i) => (
<Skeleton key={i} className="h-12 w-full rounded-md" />
))}
</div>
) : isError ? (
<p className="text-red-500">
So'rovlar yuklanmadi. Qayta urinib koring.
</p>
) : data ? (
<div className="overflow-x-auto">
<DataTableSupport columns={columns} data={data.results} />
</div>
) : (
<p className="text-gray-500">Yordam so'rovlari mavjud emas</p>
)}
</div>
<SendSupport
showMainModal={showMainModal}
setShowMainModal={setShowMainModal}
/>
</DashboardLayout>
);
};
export default SupportList;