import React, { useState } from "react"; import { Checkbox, Button, TextField, Container, FormControlLabel, Typography, Box, } from "@mui/material"; import axios from "axios"; import Swal from "sweetalert2"; import { useNavigate } from "react-router-dom"; import { isAutheticated } from "src/auth"; // import { createAnnouncement } from './api'; // Assume this is the API call const CreateAnnouncement = () => { const [sendTo, setSendTo] = useState({ PDs: false, RDs: false, SCs: false, TMs: false, }); const [message, setMessage] = useState(""); const [error, setError] = useState(""); const token = isAutheticated(); const handleCheckboxChange = (event) => { setSendTo({ ...sendTo, [event.target.name]: event.target.checked }); }; const navigate = useNavigate(); const handleSendAnnouncement = async () => { if (!message || message.length > 250) { setError("Message is required and should not exceed 250 characters."); return; } const payload = { sentTo: Object.keys(sendTo).filter((role) => sendTo[role]), message, }; console.log("this is the send to and ", sendTo, message); try { const res = await axios.post( "/api/announcement/create", // URL to your backend endpoint { sentTo: payload.sentTo, // assuming payload contains sentTo and message message: payload.message, }, { headers: { Authorization: `Bearer ${token}`, // if token is necessary for authorization }, } ); if (res.status === 201) { swal({ title: "Added", text: "Announcement added successfully!", icon: "success", button: "ok", }); navigate("/announcement"); } else { swal({ text: "Something went wrong ", icon: "error", buttons: "ok", }); } } catch (error) { swal({ text: "Something went wrong ", icon: "error", buttons: "ok", }); } }; return ( New Announcement } label="PDs" />
} label="RDs" />
} label="SCs" />
} label="TMs" />
Messgae setMessage(e.target.value)} multiline rows={4} fullWidth variant="outlined" inputProps={{ maxLength: 250 }} helperText={`${message.length}/250`} /> {error && {error}}
); }; export default CreateAnnouncement;