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 = ( {Array.from(stores).map((store, idx) => ( { e.preventDefault(); handleShowDeleteModal(store.id); }} storeHref={`/admin-branchs?id=${store.id}`} > ))} ) } const confirmDelete = async () => { if (selectedStore) { axios.delete(process.env.REACT_APP_API_URL + `/branchs/${selectedStore}`) .then((response) => { handleCloseDeleteModal(); // Đóng modal sau khi xóa window.location.reload(); // Load lại trang }) .catch((error) => console.error("Xóa bài đăng thất bại:", error)) } }; return ( {/* Modal xác nhận xóa */} Xác nhận xóa Bạn có chắc chắn muốn xóa chi nhánh này không?

Danh sách các chi nhánh

{storesContent} ) } /> ); }