import { Container, Row, Col, Card, Button, Modal } from "react-bootstrap"; import AdminTemplate from "../../templates/AdminTemplate"; import axios from 'axios'; import { useNavigate } from "react-router-dom"; import DataStorage from "../../organisms/DataStorage"; import { useEffect, useState } from "react"; export default function AdminFeedPage() { const navigate = useNavigate(); useEffect(() => { if (!DataStorage.get('isLoggedInAdmin')) { navigate('/admin-login'); } }, [navigate]); const [feeds, setFeeds] = useState([]); const [loading, setLoading] = useState(true); const [showDeleteModal, setShowDeleteModal] = useState(false); const [selectedFeedId, setSelectedFeedId] = useState(null); // Mở modal và lưu trữ id của bài đăng cần xóa const handleShowDeleteModal = (feedId) => { setSelectedFeedId(feedId); setShowDeleteModal(true); }; // Đóng modal const handleCloseDeleteModal = () => { setShowDeleteModal(false); setSelectedFeedId(null); }; const confirmDelete = async () => { if (selectedFeedId) { axios.delete(process.env.REACT_APP_API_URL + `/feeds/${selectedFeedId}`) .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)) } }; useEffect(() => { axios.get(process.env.REACT_APP_API_URL + '/feeds?limit=100') .then((response) => { setFeeds(response.data.data); setLoading(false); }) .catch((error) => { console.log(error); }) }, []); function truncateText(text, maxLength = 120) { if (text.length <= maxLength) { return text; } return text.slice(0, maxLength) + '...Xem thêm'; } function formatDate(isoDateString) { const date = new Date(isoDateString); const options = { year: 'numeric', month: 'numeric', day: 'numeric', hour: '2-digit', minute: '2-digit', second: '2-digit' }; return date.toLocaleDateString('vi-VN', options); } let feedContent; if (loading) { feedContent = (
Đang tải danh sách bài đăng...
); } else { feedContent = (