// import { MdOutlineRemoveRedEye } from "react-icons/md"; import { Box, Field, HStack, Input, Stack } from "@chakra-ui/react"; import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger, } from "../../../components/ui/dialog"; // import { BiEdit } from "react-icons/bi"; import { Button } from "../../../components/ui/button"; // import { TbEdit } from "react-icons/tb"; import Edit from "../../../components/ActionIcons/Edit"; import { UserData, useUpdateUserMutation } from "../../../Redux/Service/manage.user"; import { useState } from "react"; import { Toaster, toaster } from "../../../components/ui/toaster"; interface UserPayload { id: number; principal_type_xid: number; principal_source_xid: number; first_name: string; last_name: string; gender: string; date_of_birth: string | null; language_xid: number[]; // ✅ Always an array } export interface UserFormData { id: number; principal_type_xid: number; first_name: string; last_name: string; phone_number: string; gender: string; date_of_birth: string; is_active: boolean; principal_type: { id: number; principal_type_title: string; }; principle_language_linkss: { id?: number; iam_principal_xid?: number; language_xid: number[]; // ✅ Now it's an array }; } function EditRegisterUsers({ data, refetch }: { data: UserData, refetch: () => void }) { const [isOpen, setIsOpen] = useState(false); const transformToFormData = (data: UserData): UserFormData => ({ ...data, principle_language_linkss: { ...data.principle_language_linkss, language_xid: [data.principle_language_linkss.language_xid], // wrap in array }, }); const [formData, setFormData] = useState(transformToFormData(data)); // const [formData, setFormData] = useState({ // id: data?.id, // first_name: data?.first_name || '', // last_name: data?.last_name || '', // principal_type_xid: data?.principal_type_xid, // phone_number: data?.phone_number || '', // gender: data?.gender || '', // date_of_birth: data?.date_of_birth || '', // principal_type: data?.principal_type, // is_active: data?.is_active ?? true, // principle_language_linkss: { // ...data?.principle_language_linkss, // language_xid: Array.isArray(data?.principle_language_linkss?.language_xid) // ? data.principle_language_linkss.language_xid // : [data?.principle_language_linkss?.language_xid].filter(Boolean), // }, // // principle_language_linkss: data?.principle_language_linkss ?? [], // }); const [updateUser, { isLoading }] = useUpdateUserMutation(); const handleOpenModal = () => { setIsOpen(true); }; const handleSubmit = async (event: React.FormEvent) => { event.preventDefault(); if (formData.first_name === '' || formData.last_name === '' || formData.phone_number === '' || formData.gender === '' || formData.date_of_birth === '') { toaster.create({ title: "Error", description: "Input fields cannot be empty", type: "error", }); return; } // const languageData = formData?.principle_language_linkss?.language_xid; const payload: UserPayload = { id: formData?.id, principal_type_xid: formData?.principal_type_xid, principal_source_xid: formData?.id, first_name: formData?.first_name, last_name: formData?.last_name, gender: formData?.gender, date_of_birth: formData?.date_of_birth, // language_xid: languageData, language_xid: Array.isArray(formData.principle_language_linkss?.language_xid) ? formData.principle_language_linkss.language_xid : [formData.principle_language_linkss?.language_xid].filter(Boolean), }; // console.log('payload', payload) try { const response = await updateUser(payload).unwrap(); if (response?.status === "success") { toaster.create({ title: "Success", description: "Country updated successfully", type: "success", }); setIsOpen(false); refetch() } else { toaster.create({ title: "Error", description: "Failed to update Country", type: "error", }); } } catch (error) { console.error("Error updating template:", error); // alert("Failed to update template"); toaster.create({ title: "Error", description: "Something went wrong", type: "error", }); } }; return ( <> setIsOpen(open)}> {/* */} Edit user Accounts First Name setFormData({ ...formData, first_name: e.target.value })} /> Last Name setFormData({ ...formData, last_name: e.target.value })} /> Gender setFormData({ ...formData, gender: e.target.value })} /> DOB setFormData({ ...formData, date_of_birth: e.target.value })} /> Mobile Number setFormData({ ...formData, phone_number: e.target.value })} /> Type Of User {/* setFormData({ ...formData, principal_type: { ...formData.principal_type, principal_type_title: e.target.value } })} /> */} Default Language {/* setFormData({ ...formData, principle_language_linkss: { ...formData?.principle_language_linkss, language_xid: e.target.value .split(",") .map(lang => lang.trim()) .filter(Boolean) } })} /> */} ); } export default EditRegisterUsers;