import React, { useEffect, useState } from "react"; // import Button from "@material-ui/core/Button"; import { Link, useNavigate, useParams } from "react-router-dom"; import swal from "sweetalert"; import axios from "axios"; import { isAutheticated } from "src/auth"; import { Button, ImageList, InputLabel, ImageListItem } from "@mui/material"; import MessageList from "./MessageList"; import { useDispatch, useSelector } from "react-redux"; import toast from "react-hot-toast"; const SupportReply = () => { const token = isAutheticated(); const navigate = useNavigate(); const [data, setData] = useState({ user: "admin", replyDate: "", message: "", }); const [loading, setLoading] = useState(false); const handleChange = (e) => { setData((prev) => ({ ...prev, [e.target.id]: e.target.value })); }; const options = { weekday: "short", // Abbreviated weekday (e.g., "Tue") day: "numeric", // Numeric day (e.g., "5") month: "short", // Abbreviated month (e.g., "Mar") year: "numeric", // Numeric year (e.g., "2024") hour: "numeric", // Numeric hour (e.g., "10") minute: "2-digit", // Two-digit minute (e.g., "27") hour12: true, // Use 12-hour clock (true/false) }; const { ticketID } = useParams(); const [ticketDetails, setticketDetails] = useState(null); const [fetchData, setFetchData] = useState(false); const getSupportTicketDetails = async () => { // console.log(ticketID); axios .get(`/api/support/getOne/${ticketID}`, { headers: { "Access-Control-Allow-Origin": "*", Authorization: `Bearer ${token}`, }, }) .then((res) => { // console.log(res?.data); // setticketDetails(res.data?.support); // setTicket(res.data?.support); console.log(res.data?.support); getuserName(res.data?.support); // setLoading(false); }) .catch((error) => { swal({ title: error, text: "please login to access the resource or refresh the page ", icon: "error", button: "Retry", dangerMode: true, }); // setLoading(false); }); }; // ************************************ // updating message in backend************ const handleSubmit = () => { if (data.message.trim() === "") { swal({ title: "Warning", text: "Fill all mandatory fields", icon: "error", button: "Close", dangerMode: true, }); return; } setLoading(true); const formData = { message: data.message, replyDate: new Date().toLocaleString("en-US", options), user: "admin", }; axios .patch( `/api/support/update/${ticketID}`, { message: formData, }, { headers: { Authorization: `Bearer ${token}`, }, } ) .then((res) => { toast.success("Message Sent successfully!"); setLoading(false); setData({ message: "" }); setFetchData(true); navigate("/support/request", { replace: true }); }) .catch((error) => { swal({ title: "Error", text: "Something went wrong", icon: "error", button: "Close", }); }); }; // ************************************ const getuserName = async (ticket) => { try { const userId = ticket.addedBy; let resp = await axios.get(`/api/v1/admin/user/${userId}`, { headers: { Authorization: `Bearer ${token}`, }, }); console.log(resp?.data?.user?.name); const userName = resp?.data?.user?.name; const userMailId = resp?.data?.user?.email; // console.log(userName); // Update support ticket with user name const ticketWithUserName = { ...ticket, userName: userName, userMailId: userMailId, }; setticketDetails(ticketWithUserName); } catch (error) { // Handle errors } }; React.useEffect(() => { getSupportTicketDetails(); setFetchData(false); }, [fetchData]); // ************************************ return (