"use client"; import { useEffect, useState } from "react"; import { TextField, MenuItem, Button } from "@mui/material"; import { hospitalSoftwares, requestType, ticketPriorities, ticketStatuses, } from "@/core/constant"; import { toast } from "react-toastify"; import { handleAxiosError } from "@/core/utils"; import { createTicket, updateTicket } from "@/services/api/ticket.api"; import { TicketInterface } from "@/core/types"; interface DepartmentType { id: string; slug: string; displayName: string; } export interface IUserListItem { id: string; fullname: string; nationalCode: string; mobile: string; roleId: string; createdAt: Date; updatedAt: Date; } export default function UpdateTicketForm({ departments, users, ticket }: { departments: DepartmentType[]; users: IUserListItem[]; ticket:TicketInterface }) { const [showFieldRelatedSystem, setShowFieldRelatedSystem] = useState(false); const [form, setForm] = useState({ createdBy: ticket?.createdBy, departmentId: ticket?.departmentId, internalPhone: ticket?.internalPhone, requestType: ticket?.requestType, priority: ticket?.priority ?? "medium", description: ticket?.description, relatedSystem: ticket?.relatedSystem, location: ticket.location, helpdeskAction: ticket.helpdeskAction, assignedTo: ticket?.assignedTo, status: ticket?.status, finalNotes: ticket?.finalNotes, }); const handleChange = (e: any) => { setForm({ ...form, [e.target.name]: e.target.value, }); }; const handleSubmit = async (e: any) => { e.preventDefault(); try { const { message } = await updateTicket(ticket.id,form); toast.success(message); } catch (error) { toast.error(handleAxiosError(error)); } }; useEffect(() => { if (form.requestType === "1") { form.relatedSystem = ""; setShowFieldRelatedSystem(true); } else { form.relatedSystem = ""; setShowFieldRelatedSystem(false); } }, [form.requestType]); return (
فرم ويرايش تيكت
{departments.map((dep) => ( {dep.displayName} ))}
{requestType.map((dep) => ( {dep.displayName} ))} {showFieldRelatedSystem && ( {hospitalSoftwares.map((item) => ( {item.displayName} ))} )}
{users.map((dep) => ( {dep.fullname} ))} {ticketPriorities?.map((p: any) => ( {p.displayName} ))} {ticketStatuses?.map((p: any) => ( {p.displayName} ))}
); }