import { Container, Col, Row, Button, Modal } from 'react-bootstrap'; import StoreItem from '../../molecules/StoreItem'; import axios from 'axios'; import { useState, useEffect } from 'react'; import { useNavigate } from 'react-router-dom'; import DataStorage from '../../organisms/DataStorage'; import AdminTemplate from '../../templates/AdminTemplate'; export default function AdminBranchPage() { const [stores, setStores] = useState([]); // Lưu danh sách chi nhánh const [loading, setLoading] = useState(true); // Trạng thái tải dữ liệu const [selectedStore, setSelectedStore] = useState(null); const [showDeleteModal, setShowDeleteModal] = useState(false); const navigate = useNavigate(); useEffect(() => { if (!DataStorage.get('isLoggedInAdmin')) { navigate('/admin-login'); } }, [navigate]); useEffect(() => { // Gọi API lấy danh sách chi nhánh const fetchBranches = async () => { try { const response = await axios.get(process.env.REACT_APP_API_URL + '/branchs'); // Thay 'API_ENDPOINT' bằng URL của API setStores(response.data); // Lưu dữ liệu vào state setLoading(false); // Đặt loading thành false khi hoàn tất CacheStorage.set('stores', JSON.stringify(Object(response.data))); } catch (error) { console.error('Error fetching branches:', error); setLoading(false); // Đặt loading thành false nếu lỗi } }; fetchBranches(); }, []); const handleShowDeleteModal = (feedId) => { setSelectedStore(feedId); setShowDeleteModal(true); }; // Đóng modal const handleCloseDeleteModal = () => { setShowDeleteModal(false); setSelectedStore(null); }; function truncateText(text, maxLength = 120) { if (text.length <= maxLength) { return text; } return text.slice(0, maxLength) + '...Xem thêm'; } let storesContent; if (loading) { storesContent = (
Đang tải danh sách chi nhánh...
); // Hiển thị thông báo khi đang tải dữ liệu } else { storesContent = (