coutry crud added
This commit is contained in:
@@ -1,19 +1,25 @@
|
||||
"use client";
|
||||
|
||||
import {
|
||||
countryList,
|
||||
getAllAmenities,
|
||||
hotelBadge,
|
||||
hotelFeature,
|
||||
hotelFeatureType,
|
||||
hotelMealList,
|
||||
hotelTarif,
|
||||
hotelTransport,
|
||||
hotelType,
|
||||
regionList,
|
||||
} from "@/pages/tours/lib/api";
|
||||
import Amenities from "@/pages/tours/ui/Amenities";
|
||||
import BadgeTable from "@/pages/tours/ui/BadgeTable";
|
||||
import CountryTable from "@/pages/tours/ui/CountryTable";
|
||||
import FeaturesTable from "@/pages/tours/ui/FeaturesTable";
|
||||
import FeaturesTableType from "@/pages/tours/ui/FeaturesTableType";
|
||||
import HotelType from "@/pages/tours/ui/HotelType";
|
||||
import MealTable from "@/pages/tours/ui/MealTable";
|
||||
import RegionTable from "@/pages/tours/ui/RegionTable";
|
||||
import TarifTable from "@/pages/tours/ui/TarifTable";
|
||||
import TransportTable from "@/pages/tours/ui/TransportTable";
|
||||
import { Button } from "@/shared/ui/button";
|
||||
@@ -63,6 +69,7 @@ const ToursSetting: React.FC = () => {
|
||||
const [searchParams] = useSearchParams();
|
||||
const [activeTab, setActiveTab] = useState("badge");
|
||||
const [featureId, setFeatureId] = useState<number | null>(null);
|
||||
const [countryId, setCountryId] = useState<number | null>(null);
|
||||
const navigate = useNavigate();
|
||||
|
||||
const page = parseInt(searchParams.get("page") || "1", 10);
|
||||
@@ -120,6 +127,47 @@ const ToursSetting: React.FC = () => {
|
||||
select: (res) => res.data.data,
|
||||
});
|
||||
|
||||
const pageCountry = parseInt(searchParams.get("pageCountry") || "1", 10);
|
||||
const pageSizeCountry = parseInt(
|
||||
searchParams.get("pageSizeCountry") || "10",
|
||||
10,
|
||||
);
|
||||
|
||||
const {
|
||||
data: countryData,
|
||||
isLoading: countryLoad,
|
||||
isError: countryError,
|
||||
refetch: countryRef,
|
||||
} = useQuery({
|
||||
queryKey: ["all_country", pageCountry, pageSizeCountry],
|
||||
queryFn: () =>
|
||||
countryList({ page: pageCountry, page_size: pageSizeCountry }),
|
||||
select: (res) => res.data.data,
|
||||
});
|
||||
|
||||
const pageRegion = parseInt(searchParams.get("pageRegion") || "1", 10);
|
||||
const pageSizeRegion = parseInt(
|
||||
searchParams.get("pageSizeRegion") || "10",
|
||||
10,
|
||||
);
|
||||
|
||||
const {
|
||||
data: regionData,
|
||||
isLoading: regionLoad,
|
||||
isError: regionError,
|
||||
refetch: regionRef,
|
||||
} = useQuery({
|
||||
queryKey: ["all_region", pageRegion, pageSizeRegion, countryId],
|
||||
queryFn: () =>
|
||||
regionList({
|
||||
page: pageRegion,
|
||||
page_size: pageSizeRegion,
|
||||
country: countryId!,
|
||||
}),
|
||||
select: (res) => res.data.data,
|
||||
enabled: !!countryId,
|
||||
});
|
||||
|
||||
const pageFeature = parseInt(searchParams.get("pageFeature") || "1", 10);
|
||||
const pageSizeFeature = parseInt(
|
||||
searchParams.get("pageSizeFeature") || "10",
|
||||
@@ -173,6 +221,20 @@ const ToursSetting: React.FC = () => {
|
||||
select: (res) => res.data.data,
|
||||
});
|
||||
|
||||
const pageMeal = parseInt(searchParams.get("pageMeal") || "1", 10);
|
||||
const pageSizeMeal = parseInt(searchParams.get("pageSizeMeal") || "10", 10);
|
||||
|
||||
const {
|
||||
data: mealData,
|
||||
isLoading: mealLoad,
|
||||
isError: mealError,
|
||||
refetch: mealRef,
|
||||
} = useQuery({
|
||||
queryKey: ["all_meal", pageMeal, pageSizeMeal],
|
||||
queryFn: () => hotelMealList({ page: pageMeal, page_size: pageSizeMeal }),
|
||||
select: (res) => res.data.data,
|
||||
});
|
||||
|
||||
const handleTabChange = (value: string) => {
|
||||
setActiveTab(value);
|
||||
navigate({
|
||||
@@ -191,6 +253,9 @@ const ToursSetting: React.FC = () => {
|
||||
>
|
||||
<TabsList className="w-full">
|
||||
<TabsTrigger value="badge">{t("Belgilar (Badge)")}</TabsTrigger>
|
||||
<TabsTrigger value="meal_plan">
|
||||
{t("Ovqatlanish turlari")}
|
||||
</TabsTrigger>
|
||||
<TabsTrigger value="tarif">{t("Tariflar")}</TabsTrigger>
|
||||
<TabsTrigger value="transport">{t("Transport")}</TabsTrigger>
|
||||
<TabsTrigger value="meal">{t("Qulayliklar")}</TabsTrigger>
|
||||
@@ -198,6 +263,7 @@ const ToursSetting: React.FC = () => {
|
||||
<TabsTrigger value="hotel_features">
|
||||
{t("Otel sharoitlari")}
|
||||
</TabsTrigger>
|
||||
<TabsTrigger value="country">{t("Davlatlar")}</TabsTrigger>
|
||||
</TabsList>
|
||||
|
||||
<TabsContent value="badge" className="space-y-4">
|
||||
@@ -273,7 +339,7 @@ const ToursSetting: React.FC = () => {
|
||||
onRetry={typeRef}
|
||||
/>
|
||||
) : (
|
||||
<MealTable
|
||||
<HotelType
|
||||
data={typeData}
|
||||
page={pageType}
|
||||
pageSize={pageSizeType}
|
||||
@@ -281,6 +347,23 @@ const ToursSetting: React.FC = () => {
|
||||
)}
|
||||
</TabsContent>
|
||||
|
||||
<TabsContent value="meal_plan" className="space-y-4">
|
||||
{mealLoad ? (
|
||||
<LoadingDisplay />
|
||||
) : mealError ? (
|
||||
<ErrorDisplay
|
||||
message={t("Otel turlarini yuklashda xatolik yuz berdi.")}
|
||||
onRetry={mealRef}
|
||||
/>
|
||||
) : (
|
||||
<MealTable
|
||||
data={mealData}
|
||||
page={pageMeal}
|
||||
pageSize={pageSizeMeal}
|
||||
/>
|
||||
)}
|
||||
</TabsContent>
|
||||
|
||||
<TabsContent value="hotel_features" className="space-y-4">
|
||||
{featureLoad ? (
|
||||
<LoadingDisplay />
|
||||
@@ -317,6 +400,43 @@ const ToursSetting: React.FC = () => {
|
||||
/>
|
||||
)}
|
||||
</TabsContent>
|
||||
|
||||
<TabsContent value="country" className="space-y-4">
|
||||
{countryLoad ? (
|
||||
<LoadingDisplay />
|
||||
) : countryError ? (
|
||||
<ErrorDisplay
|
||||
message={t("Sharoit turlarini yuklashda xatolik yuz berdi.")}
|
||||
onRetry={countryRef}
|
||||
/>
|
||||
) : (
|
||||
<CountryTable
|
||||
data={countryData}
|
||||
page={pageCountry}
|
||||
setActiveTab={setActiveTab}
|
||||
setFeatureId={setCountryId}
|
||||
pageSize={pageSizeCountry}
|
||||
/>
|
||||
)}
|
||||
</TabsContent>
|
||||
|
||||
<TabsContent value="region" className="space-y-4">
|
||||
{regionLoad ? (
|
||||
<LoadingDisplay />
|
||||
) : regionError ? (
|
||||
<ErrorDisplay
|
||||
message={t("Sharoit turlarini yuklashda xatolik yuz berdi.")}
|
||||
onRetry={regionRef}
|
||||
/>
|
||||
) : (
|
||||
<RegionTable
|
||||
data={regionData}
|
||||
page={pageRegion}
|
||||
featureId={countryId}
|
||||
pageSize={pageSizeRegion}
|
||||
/>
|
||||
)}
|
||||
</TabsContent>
|
||||
</Tabs>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user