import React, { useState, useEffect } from "react"; import Slider from "react-slick"; import { useMediaQuery } from "react-responsive"; import "slick-carousel/slick/slick.css"; import "slick-carousel/slick/slick-theme.css"; import "./SliderObjects.scss"; import { Object } from "../Object/Object"; import { API_CONFIG } from "../../config/contacts"; import objectPicOne from "../../assets/images/apartaments/image-44.jpg"; import objectPicTwo from "../../assets/images/apartaments/image-45.jpg"; import objectPicThree from "../../assets/images/apartaments/image-46.jpg"; const NextArrow = ({ onClick }) => { return (
); }; const PrevArrow = ({ onClick }) => { return (
); }; const SliderComponent = () => { const [objects, setObjects] = useState([]); const [loading, setLoading] = useState(true); const isMobileResolution = useMediaQuery({ maxWidth: 768 }); // Загрузка данных с API useEffect(() => { const fetchObjects = async () => { try { const response = await fetch( API_CONFIG.getFullURL(API_CONFIG.endpoints.rental), { method: "GET", headers: { accept: "*/*", }, } ); if (response.ok) { const data = await response.json(); setObjects(data); } } catch (error) { console.error("Ошибка при загрузке объектов:", error); } finally { setLoading(false); } }; fetchObjects(); }, []); const settings = { dots: objects.length > (isMobileResolution ? 1 : 3), infinite: objects.length > (isMobileResolution ? 1 : 3), speed: 500, slidesToShow: isMobileResolution ? 1 : 3, slidesToScroll: isMobileResolution ? 1 : 3, arrows: true, nextArrow: , prevArrow: , }; if (loading || objects.length === 0) { return (
); } return (
{objects.map((object) => ( ))} ); }; export { SliderComponent };