fixed: edit customer company not appearing

This commit is contained in:
AmirReza Jamali
2025-09-23 15:25:30 +03:30
parent 14f36827ab
commit c146f1175c
2 changed files with 14 additions and 2 deletions
@@ -17,7 +17,7 @@ interface IProps {
} }
const CreateCustomer = ({ defaultValues, editMode, id }: IProps) => { const CreateCustomer = ({ defaultValues, editMode, id }: IProps) => {
const { errors, handleSubmit, register, onSubmit, companies, router } = const { errors, handleSubmit, register, watch, onSubmit, companies, router } =
useCreateCustomerPresenter({ defaultValues, editMode, id }); useCreateCustomerPresenter({ defaultValues, editMode, id });
return ( return (
@@ -54,6 +54,7 @@ const CreateCustomer = ({ defaultValues, editMode, id }: IProps) => {
<div className="flex flex-col gap-2"> <div className="flex flex-col gap-2">
<MultiSelect <MultiSelect
label="Select companies" label="Select companies"
value={watch("companies")}
items={ items={
companies companies
? companies?.map((item) => ({ ? companies?.map((item) => ({
@@ -7,6 +7,7 @@ import {
} from "@/hooks/queries"; } from "@/hooks/queries";
import { CreateCustomerCredentials } from "@/lib/api"; import { CreateCustomerCredentials } from "@/lib/api";
import { useRouter } from "next/navigation"; import { useRouter } from "next/navigation";
import { useEffect } from "react";
import { SubmitHandler, useForm } from "react-hook-form"; import { SubmitHandler, useForm } from "react-hook-form";
interface IProps { interface IProps {
@@ -24,6 +25,8 @@ const useCreateCustomerPresenter = ({
register, register,
handleSubmit, handleSubmit,
formState: { errors }, formState: { errors },
setValue,
watch,
} = useForm<CreateCustomerCredentials>({ } = useForm<CreateCustomerCredentials>({
mode: "onChange", mode: "onChange",
defaultValues, defaultValues,
@@ -34,6 +37,14 @@ const useCreateCustomerPresenter = ({
id as string, id as string,
); );
const { data: companies } = useCompanyFullList(); const { data: companies } = useCompanyFullList();
useEffect(() => {
if (defaultValues) {
const companies = defaultValues?.companies?.map(
(company: any) => company.id,
);
setValue("companies", companies);
}
}, [defaultValues]);
const onSubmit: SubmitHandler<CreateCustomerCredentials> = (data) => { const onSubmit: SubmitHandler<CreateCustomerCredentials> = (data) => {
if (editMode) { if (editMode) {
updateCustomer({ updateCustomer({
@@ -41,7 +52,6 @@ const useCreateCustomerPresenter = ({
credentials: data, credentials: data,
}); });
} else { } else {
createCustomer({ createCustomer({
...data, ...data,
employee_count: data.employee_count ? +data.employee_count : undefined, employee_count: data.employee_count ? +data.employee_count : undefined,
@@ -52,6 +62,7 @@ const useCreateCustomerPresenter = ({
}; };
return { return {
handleSubmit, handleSubmit,
watch,
register, register,
errors, errors,
onSubmit, onSubmit,