import React from "react"; import { ViewMode, SimProduct, SelectedProduct } from "../../services/types"; import ProductCard from "../../components/ProductCard"; import { useMutation, useQuery } from "@tanstack/react-query"; import { startLoading, stopLoading } from "../../features/loading/loadingSlice"; import { useAppDispatch } from "../../hooks/useRedux"; import { productApi } from "../../apis/productApi"; import { Area } from "../../services/product/type"; import { DataCacheKey, staleTime } from "../../global/constants"; import { useNavigate } from "react-router-dom"; import HomeSearch from "../home/components/HomeSearch"; interface BuySimViewProps { onProductSelect: (product: SelectedProduct) => void; onViewChange: (view: ViewMode) => void; } const BuySimView: React.FC = ({ onProductSelect, onViewChange, }) => { const dispatch = useAppDispatch(); const navigate = useNavigate(); // load product by country/region or popularity const { data: loadArea = [] } = useQuery({ queryKey: [DataCacheKey.AREAS], queryFn: async (): Promise => { try { dispatch(startLoading({})); const res = await productApi.loadArea({ isCountry: "-1", isPopular: "-1", }); // save to redux store console.log("Get area response data:", res); return res.data as Area[]; } catch (error) { console.error(error); return []; // 🔴 bắt buộc } finally { dispatch(stopLoading()); } }, staleTime: staleTime, }); const handleSelect = (p: Area) => { // open product detail view navigate(`/product/${p.id}`, { state: { ...p, }, }); }; return (

SIM Popular

{loadArea.map((p) => ( ))}
); }; export default BuySimView;