import React, { useState, useEffect } from "react"; import axios from "axios"; import { Link, useNavigate } from "react-router-dom"; import NavbarBlagajnik from "../../../components/NavbarBlagajnik/NavbarBlagajnik.jsx" import dayjs from "dayjs"; const BlagajnikDashboard = ({ blagajnikId }) => { const navigate = useNavigate(); const [ showCreateSoopstenieZaPlakjanjeModal, setShowCreateSoopstenieZaPlakjanjeModal, ] = useState(false); const [error, setError] = useState(""); const [loading, setLoading] = useState(true); const [soopstenijaZaPlakjanje, setSoopstenijaZaPlakjanje] = useState([]); const [formData, setFormData] = useState({ naslov: "", sodrzina: "", iznos: "", valuta: "", rokZaPlakjanje: "", }); const handleChange = (e) => { const { name, value } = e.target; setFormData((prev) => ({ ...prev, [name]: value, })); }; const handleSubmitSoopstenie = async (e) => { e.preventDefault(); setError(""); const SoopstenieZaPlakjanjeRequestDTO = { naslov: formData.naslov, sodrzina: formData.sodrzina, iznos: parseFloat(formData.iznos), valuta: formData.valuta, rokZaPlakjanje: formData.rokZaPlakjanje, sozdadenoOdBlagajnikId: blagajnikId, }; try { const response = await axios.post( "http://localhost:8080/api/paymentsSoopstenija", SoopstenieZaPlakjanjeRequestDTO, { withCredentials: true, headers: { "Content-Type": "application/json" }, } ); if (response.status === 200 || response.status === 201) { alert("Соопштението за плаќање е успешно креирано!"); navigate("/dashboard"); } } catch (err) { console.error("Грешка при POST:", err.response?.data); const serverMsg = err.response?.data?.message || "Грешка при валидација. Проверете ги сите полиња."; setError(serverMsg); } }; useEffect(() => { const initializeDashboard = async () => { if (!blagajnikId) return; try { setLoading(true); const [resSoopstenija] = await Promise.all([ axios.get(`http://localhost:8080/api/paymentsSoopstenija/blagajnik`, { withCredentials: true, }), ]); setSoopstenijaZaPlakjanje(resSoopstenija.data); } catch (err) { setError(err); console.log(err); } finally { setLoading(false); } }; initializeDashboard(); }, [blagajnikId]); const handleShowCreateSoopstenieModal = () => { setShowCreateSoopstenieZaPlakjanjeModal(true); }; return ( <>
STATUS: {pA.status}
Рок за плаќање: {pA.rokZaPlakjanje}
{pA.sodrzina}
{pA.valuta} {Number(pA.iznos).toFixed(18)}
Креирано на{" "} {dayjs(pA.createdAt).format("HH:mm DD.MM.YYYY")}
Види плаќања