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 = (

Danh sách các bài đăng trên trang chủ

{feeds.map((item, idx) => ( {item.title} {truncateText(item.description)} Tác giả: {item.author_id ? item.author_id : 'Không rõ'} Thời gian tạo: {formatDate(item.create_at)} ))}
); } 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 bài đăng này không? {feedContent} ) } /> ); }