"use client"; import { getAllAmenities, hotelBadge, hotelFeature, hotelFeatureType, hotelTarif, hotelTransport, hotelType, } from "@/pages/tours/lib/api"; import Amenities from "@/pages/tours/ui/Amenities"; import BadgeTable from "@/pages/tours/ui/BadgeTable"; import FeaturesTable from "@/pages/tours/ui/FeaturesTable"; import FeaturesTableType from "@/pages/tours/ui/FeaturesTableType"; import MealTable from "@/pages/tours/ui/MealTable"; import TarifTable from "@/pages/tours/ui/TarifTable"; import TransportTable from "@/pages/tours/ui/TransportTable"; import { Button } from "@/shared/ui/button"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/shared/ui/tabs"; import { useQuery } from "@tanstack/react-query"; import { AlertTriangle, Loader2 } from "lucide-react"; import React, { useState } from "react"; import { useTranslation } from "react-i18next"; import { useNavigate, useSearchParams } from "react-router-dom"; const ToursSetting: React.FC = () => { const { t } = useTranslation(); const [searchParams] = useSearchParams(); const [activeTab, setActiveTab] = useState("badge"); const [featureId, setFeatureId] = useState(null); const navigate = useNavigate(); const page = parseInt(searchParams.get("page") || "1", 10); const pageSize = parseInt(searchParams.get("pageSize") || "10", 10); const { data, isLoading, isError, refetch } = useQuery({ queryKey: ["all_badge", page, pageSize], queryFn: () => hotelBadge({ page, page_size: pageSize }), select: (res) => res.data.data, }); const pageTarif = parseInt(searchParams.get("pageTarif") || "1", 10); const pageSizeTarif = parseInt(searchParams.get("pageTarifSize") || "10", 10); const { data: tarifData, isLoading: tarifLoad, isError: tarifError, refetch: tarifRef, } = useQuery({ queryKey: ["all_tarif", pageTarif, pageSizeTarif], queryFn: () => hotelTarif({ page: pageTarif, page_size: pageSizeTarif }), select: (res) => res.data.data, }); const pageTransport = parseInt(searchParams.get("pageTransport") || "1", 10); const pageSizeTransport = parseInt( searchParams.get("pageTransportSize") || "10", 10, ); const { data: transportData, isLoading: transportLoad, isError: transportError, refetch: transportRef, } = useQuery({ queryKey: ["all_transport", pageTransport, pageSizeTransport], queryFn: () => hotelTransport({ page: pageTransport, page_size: pageSizeTransport }), select: (res) => res.data.data, }); const pageType = parseInt(searchParams.get("pageType") || "1", 10); const pageSizeType = parseInt(searchParams.get("pageTypeSize") || "10", 10); const { data: typeData, isLoading: typeLoad, isError: typeError, refetch: typeRef, } = useQuery({ queryKey: ["all_type", pageType, pageSizeType], queryFn: () => hotelType({ page: pageType, page_size: pageSizeType }), select: (res) => res.data.data, }); const pageFeature = parseInt(searchParams.get("pageFeature") || "1", 10); const pageSizeFeature = parseInt( searchParams.get("pageSizeFeature") || "10", 10, ); const { data: featureData, isLoading: featureLoad, isError: featureError, refetch: featureRef, } = useQuery({ queryKey: ["all_feature", pageFeature, pageSizeFeature], queryFn: () => hotelFeature({ page: pageFeature, page_size: pageSizeFeature }), select: (res) => res.data.data, }); const { data: featureTypeData, isLoading: featureTypeLoad, isError: featureTypeError, refetch: featureTypeRef, } = useQuery({ queryKey: ["all_feature_type", pageFeature, pageSizeFeature, featureId], queryFn: () => hotelFeatureType({ page: pageFeature, page_size: pageSizeFeature, feature_type: featureId!, }), select: (res) => res.data.data, enabled: !!featureId, }); const pageAmenities = parseInt(searchParams.get("pageAmenities") || "1", 10); const pageSizeAmenities = parseInt( searchParams.get("pageSizeAmenities") || "10", 10, ); const { data: amenitiesData, isLoading: amenitiesLoad, isError: amenitiesError, refetch: amenitiesRef, } = useQuery({ queryKey: ["all_amenities", page, pageSize], queryFn: () => getAllAmenities({ page, page_size: pageSize }), select: (res) => res.data.data, }); if ( isLoading || tarifLoad || transportLoad || typeLoad || featureLoad || featureTypeLoad || amenitiesLoad ) { return (

{t("Ma'lumotlar yuklanmoqda...")}

); } if ( isError || tarifError || transportError || typeError || featureError || featureTypeError || amenitiesError ) { return (

{t("Ma'lumotlarni yuklashda xatolik yuz berdi.")}

); } const handleTabChange = (value: string) => { setActiveTab(value); navigate({ pathname: window.location.pathname, search: "", }); }; return (
{t("Belgilar (Badge)")} {t("Tariflar")} {t("Transport")} {t("Qulayliklar")} {t("Otel turlari")} {t("Otel sharoitlari")}
); }; export default ToursSetting;