This commit is contained in:
Samandar Turgunboyev
2025-11-12 15:41:59 +05:00
parent e09ec2b7d5
commit fa19172634
3 changed files with 51 additions and 40 deletions

View File

@@ -488,8 +488,7 @@ export interface GetHotelRes {
total_pages: number; total_pages: number;
page_size: number; page_size: number;
current_page: number; current_page: number;
results: [ results: {
{
id: number; id: number;
name: string; name: string;
rating: number; rating: number;
@@ -524,8 +523,7 @@ export interface GetHotelRes {
}; };
}, },
]; ];
}, }[];
];
}; };
} }

View File

@@ -34,7 +34,7 @@ import { Popover, PopoverContent, PopoverTrigger } from "@/shared/ui/popover";
import { RadioGroup, RadioGroupItem } from "@/shared/ui/radio-group"; import { RadioGroup, RadioGroupItem } from "@/shared/ui/radio-group";
import { Textarea } from "@/shared/ui/textarea"; import { Textarea } from "@/shared/ui/textarea";
import { zodResolver } from "@hookform/resolvers/zod"; import { zodResolver } from "@hookform/resolvers/zod";
import { useMutation, useQuery } from "@tanstack/react-query"; import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
import { ChevronDownIcon, Loader2, SquareCheckBig, XIcon } from "lucide-react"; import { ChevronDownIcon, Loader2, SquareCheckBig, XIcon } from "lucide-react";
import { useEffect, useState, type Dispatch, type SetStateAction } from "react"; import { useEffect, useState, type Dispatch, type SetStateAction } from "react";
import { useForm } from "react-hook-form"; import { useForm } from "react-hook-form";
@@ -54,6 +54,7 @@ const StepOne = ({
isEditMode: boolean; isEditMode: boolean;
}) => { }) => {
const [displayPrice, setDisplayPrice] = useState(""); const [displayPrice, setDisplayPrice] = useState("");
const queryClient = useQueryClient();
// const [tarifdisplayPrice, setTarifDisplayPrice] = useState<string[]>([]); // const [tarifdisplayPrice, setTarifDisplayPrice] = useState<string[]>([]);
const [transportPrices, setTransportPrices] = useState<string[]>([]); const [transportPrices, setTransportPrices] = useState<string[]>([]);
@@ -126,7 +127,7 @@ const StepOne = ({
}; };
} }
// 🔹 Transport // 🔹 TransportS
const transports = const transports =
tour.transports?.map((t, i) => ({ tour.transports?.map((t, i) => ({
transport: i + 1, transport: i + 1,
@@ -236,6 +237,8 @@ const StepOne = ({
return createTours({ body }); return createTours({ body });
}, },
onSuccess: (res) => { onSuccess: (res) => {
queryClient.refetchQueries({ queryKey: ["popular_tours"] });
queryClient.refetchQueries({ queryKey: ["all_tours"] });
setId(res.data.data.id); setId(res.data.data.id);
setStep(2); setStep(2);
}, },
@@ -252,6 +255,8 @@ const StepOne = ({
return updateTours({ body, id }); return updateTours({ body, id });
}, },
onSuccess: (res) => { onSuccess: (res) => {
queryClient.refetchQueries({ queryKey: ["all_tours"] });
queryClient.refetchQueries({ queryKey: ["popular_tours"] });
setId(res.data.data.id); setId(res.data.data.id);
setStep(2); setStep(2);
}, },

View File

@@ -232,6 +232,8 @@ const StepTwo = ({
mutationFn: (body: FormData) => createHotel({ body }), mutationFn: (body: FormData) => createHotel({ body }),
onSuccess: () => { onSuccess: () => {
queryClient.refetchQueries({ queryKey: ["hotel_detail"] }); queryClient.refetchQueries({ queryKey: ["hotel_detail"] });
queryClient.refetchQueries({ queryKey: ["popular_tours"] });
queryClient.refetchQueries({ queryKey: ["all_tours"] });
toast.success(t("Muvaffaqiyatli saqlandi")); toast.success(t("Muvaffaqiyatli saqlandi"));
navigate("/tours"); navigate("/tours");
setStep(1); setStep(1);
@@ -248,6 +250,8 @@ const StepTwo = ({
editHotel({ body, id }), editHotel({ body, id }),
onSuccess: () => { onSuccess: () => {
queryClient.refetchQueries({ queryKey: ["hotel_detail"] }); queryClient.refetchQueries({ queryKey: ["hotel_detail"] });
queryClient.refetchQueries({ queryKey: ["popular_tours"] });
queryClient.refetchQueries({ queryKey: ["all_tours"] });
toast.success(t("Muvaffaqiyatli saqlandi")); toast.success(t("Muvaffaqiyatli saqlandi"));
navigate("/tours"); navigate("/tours");
setStep(1); setStep(1);
@@ -312,16 +316,20 @@ const StepTwo = ({
data.hotelFeatures && data.hotelFeatures &&
data.hotelFeatures.forEach((id) => formData.append("hotel_features", id)); data.hotelFeatures.forEach((id) => formData.append("hotel_features", id));
if (isEditMode && hotelDetail) { if (isEditMode && hotelDetail && hotelDetail?.length > 0) {
edit({ edit({
body: formData, body: formData,
id: Number(hotelDetail[0].id), id: Number(hotelDetail[0].id),
}); });
} else if (isEditMode && hotelDetail && hotelDetail?.length === 0) {
mutate(formData);
} else { } else {
mutate(formData); mutate(formData);
} }
}; };
console.log(hotelDetail);
const mealPlans = [ const mealPlans = [
"Breakfast Only", "Breakfast Only",
"Half Board", "Half Board",