import { Container, Row, Col, Card, Form, Image, Alert, Button } from "react-bootstrap"; import AdminTemplate from "../../templates/AdminTemplate"; import { useSearchParams } from 'react-router-dom'; import axios from "axios"; import DataStorage from "../../organisms/DataStorage"; import { useEffect, useState } from "react"; import { useNavigate } from "react-router-dom"; export default function AdminNewsEditPage() { const [error, setError] = useState(""); const [searchParams] = useSearchParams(); const newsId = Number(searchParams.get('id')) || null; const [feedDetail, setFeedItem] = useState({}); const [initialUrl, setInitialUrl] = useState(""); const [initialTitle, setInitialTitle] = useState(""); const [initialDesc, setInitialDesc] = useState(""); // const [loading, setLoading] = useState(true); const [isChanged, setChanged] = useState(false); const navigate = useNavigate(); useEffect(() => { if (!DataStorage.get('isLoggedInAdmin')) { navigate('/admin-login'); } }, [navigate]); const checkChange = () => { if (feedDetail.title.trim() !== initialTitle.trim() || feedDetail.description.trim() !== initialDesc.trim() || feedDetail.image_url.trim() !== initialUrl.trim()) { setChanged(true); } else { setChanged(false); } } const handleChange = (e) => { const { name, value } = e.target; setFeedItem({ ...feedDetail, [name]: value }); checkChange(); }; const handleAvatarUrlChange = (e) => { const url = e.target.value; setFeedItem((prevData) => ({ ...prevData, image_url: url // Cập nhật URL ảnh })); setChanged(true); }; useEffect(() => { if (newsId) { axios.get(process.env.REACT_APP_API_URL + `/feeds/${newsId}`) .then((response) => { setFeedItem(response.data); // setLoading(false); setInitialDesc(response.data.description); setInitialTitle(response.data.title); setInitialUrl(response.data.image_url); }) .catch((error) => { setError(JSON.stringify(error)); }) } }, [newsId]); const handleSubmit = () => { const submit_data = { 'title': feedDetail.title, 'description': feedDetail.description, 'image_url': feedDetail.image_url } if (newsId) { axios.patch(process.env.REACT_APP_API_URL + `/feeds/${newsId}`, submit_data) .then((response) => { // setFeedItem(response.data); // // setLoading(false); // setInitialDesc(response.data.description); // setInitialTitle(response.data.title); // setChanged(false); navigate('/admin-feed'); // window.location.reload(); }) .catch((error) => { setError(JSON.stringify(error)); }) } else { axios.post(process.env.REACT_APP_API_URL + `/feeds`, submit_data) .then((response) => { navigate('/admin-feed'); }) .catch((error) => { setError(JSON.stringify(error)); }) } } return ( {/* */} {newsId ? 'Chỉnh sửa bài đăng' : 'Tạo bài đăng'}
{error && {error}} {/* Hiển thị ảnh từ URL */} Ảnh bài đăng URL ảnh bài đăng Tiêu đề bài đăng Nội dung
{/* */}
) } /> ) }