parts added update remove
This commit is contained in:
parent
5bb6021102
commit
56b42bb906
|
|
@ -11,7 +11,6 @@ import { useAddBuildAreasMutation } from "./queries"
|
||||||
import { Checkbox } from "@/components/ui/checkbox"
|
import { Checkbox } from "@/components/ui/checkbox"
|
||||||
|
|
||||||
const BuildPartsForm = ({ refetchTable, selectedBuildId }: { refetchTable: () => void, selectedBuildId: string }) => {
|
const BuildPartsForm = ({ refetchTable, selectedBuildId }: { refetchTable: () => void, selectedBuildId: string }) => {
|
||||||
|
|
||||||
const form = useForm<BuildPartsAdd>({
|
const form = useForm<BuildPartsAdd>({
|
||||||
resolver: zodResolver(buildPartsAddSchema),
|
resolver: zodResolver(buildPartsAddSchema),
|
||||||
defaultValues: {
|
defaultValues: {
|
||||||
|
|
@ -19,13 +18,9 @@ const BuildPartsForm = ({ refetchTable, selectedBuildId }: { refetchTable: () =>
|
||||||
directionId: "", typeId: "", active: false, isConfirmed: false, expiryStarts: "", expiryEnds: "",
|
directionId: "", typeId: "", active: false, isConfirmed: false, expiryStarts: "", expiryEnds: "",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
const { handleSubmit } = form;
|
const { handleSubmit } = form;
|
||||||
|
|
||||||
const mutation = useAddBuildAreasMutation();
|
const mutation = useAddBuildAreasMutation();
|
||||||
|
function onSubmit(values: BuildPartsAdd) { mutation.mutate({ data: values, buildId: selectedBuildId, refetchTable }) };
|
||||||
function onSubmit(values: BuildPartsAdd) { mutation.mutate({ data: values, buildId: selectedBuildId }); setTimeout(() => refetchTable(), 400) };
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Form {...form}>
|
<Form {...form}>
|
||||||
<form
|
<form
|
||||||
|
|
@ -34,7 +29,6 @@ const BuildPartsForm = ({ refetchTable, selectedBuildId }: { refetchTable: () =>
|
||||||
>
|
>
|
||||||
{/* ROW 1 */}
|
{/* ROW 1 */}
|
||||||
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
|
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
|
||||||
|
|
||||||
<FormField
|
<FormField
|
||||||
control={form.control}
|
control={form.control}
|
||||||
name="addressGovCode"
|
name="addressGovCode"
|
||||||
|
|
@ -245,7 +239,6 @@ const BuildPartsForm = ({ refetchTable, selectedBuildId }: { refetchTable: () =>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
)}
|
)}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<FormField
|
<FormField
|
||||||
control={form.control}
|
control={form.control}
|
||||||
name="isConfirmed"
|
name="isConfirmed"
|
||||||
|
|
@ -265,7 +258,6 @@ const BuildPartsForm = ({ refetchTable, selectedBuildId }: { refetchTable: () =>
|
||||||
)}
|
)}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Separator />
|
<Separator />
|
||||||
{/* EXPIRY DATES */}
|
{/* EXPIRY DATES */}
|
||||||
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
|
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
|
||||||
|
|
@ -297,7 +289,7 @@ const BuildPartsForm = ({ refetchTable, selectedBuildId }: { refetchTable: () =>
|
||||||
)}
|
)}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<Button type="submit" className="w-full">Add Build Address</Button>
|
<Button type="submit" className="w-full">Add Build Parts</Button>
|
||||||
</form>
|
</form>
|
||||||
</Form>
|
</Form>
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -3,21 +3,21 @@ import { useMutation } from '@tanstack/react-query'
|
||||||
import { toISOIfNotZ } from '@/lib/utils';
|
import { toISOIfNotZ } from '@/lib/utils';
|
||||||
import { BuildPartsAdd } from './schema';
|
import { BuildPartsAdd } from './schema';
|
||||||
|
|
||||||
const fetchGraphQlBuildSitesAdd = async (record: BuildPartsAdd, buildId: string): Promise<{ data: BuildPartsAdd | null; status: number }> => {
|
const fetchGraphQlBuildSitesAdd = async (record: BuildPartsAdd, buildId: string, refetchTable: () => void): Promise<{ data: BuildPartsAdd | null; status: number }> => {
|
||||||
console.log('Fetching test data from local API');
|
console.log('Fetching test data from local API');
|
||||||
record.expiryStarts = record.expiryStarts ? toISOIfNotZ(record.expiryStarts) : undefined;
|
record.expiryStarts = record.expiryStarts ? toISOIfNotZ(record.expiryStarts) : undefined;
|
||||||
record.expiryEnds = record.expiryEnds ? toISOIfNotZ(record.expiryEnds) : undefined;
|
record.expiryEnds = record.expiryEnds ? toISOIfNotZ(record.expiryEnds) : undefined;
|
||||||
try {
|
try {
|
||||||
const res = await fetch('/api/builds-parts/add', { method: 'POST', cache: 'no-store', credentials: "include", body: JSON.stringify({ data: record, buildId }) });
|
const res = await fetch('/api/builds-parts/add', { method: 'POST', cache: 'no-store', credentials: "include", body: JSON.stringify({ data: record, buildId }) });
|
||||||
if (!res.ok) { const errorText = await res.text(); console.error('Test data API error:', errorText); throw new Error(`API error: ${res.status} ${res.statusText}`) }
|
if (!res.ok) { const errorText = await res.text(); console.error('Test data API error:', errorText); throw new Error(`API error: ${res.status} ${res.statusText}`) }
|
||||||
const data = await res.json();
|
const data = await res.json(); refetchTable();
|
||||||
return { data: data.data, status: res.status }
|
return { data: data.data, status: res.status }
|
||||||
} catch (error) { console.error('Error fetching test data:', error); throw error }
|
} catch (error) { console.error('Error fetching test data:', error); throw error }
|
||||||
};
|
};
|
||||||
|
|
||||||
export function useAddBuildAreasMutation() {
|
export function useAddBuildAreasMutation() {
|
||||||
return useMutation({
|
return useMutation({
|
||||||
mutationFn: ({ data, buildId }: { data: BuildPartsAdd, buildId: string }) => fetchGraphQlBuildSitesAdd(data, buildId),
|
mutationFn: ({ data, buildId, refetchTable }: { data: BuildPartsAdd, buildId: string, refetchTable: () => void }) => fetchGraphQlBuildSitesAdd(data, buildId, refetchTable),
|
||||||
onSuccess: () => { console.log("Build areas created successfully") },
|
onSuccess: () => { console.log("Build areas created successfully") },
|
||||||
onError: (error) => { console.error("Add build areas failed:", error) },
|
onError: (error) => { console.error("Add build areas failed:", error) },
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -15,11 +15,8 @@ const BuildPartsForm = ({ refetchTable, initData, selectedUuid, buildId }: { ref
|
||||||
const form = useForm<BuildPartsUpdate>({
|
const form = useForm<BuildPartsUpdate>({
|
||||||
resolver: zodResolver(buildPartsUpdateSchema), defaultValues: { ...initData, directionId: initData.directionId ?? '', typeId: initData.typeId ?? '' }
|
resolver: zodResolver(buildPartsUpdateSchema), defaultValues: { ...initData, directionId: initData.directionId ?? '', typeId: initData.typeId ?? '' }
|
||||||
})
|
})
|
||||||
|
|
||||||
const { handleSubmit } = form
|
const { handleSubmit } = form
|
||||||
|
|
||||||
const mutation = useUpdateBuildPartsMutation();
|
const mutation = useUpdateBuildPartsMutation();
|
||||||
|
|
||||||
function onSubmit(values: BuildPartsUpdate) { mutation.mutate({ data: values as any || initData, uuid: selectedUuid, buildId, refetchTable }) }
|
function onSubmit(values: BuildPartsUpdate) { mutation.mutate({ data: values as any || initData, uuid: selectedUuid, buildId, refetchTable }) }
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|
|
||||||
|
|
@ -39,12 +39,9 @@ const BuildsForm = ({ refetchTable }: { refetchTable: () => void }) => {
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const [buildTypesID, setBuildTypesID] = useState('');
|
const [buildTypesID, setBuildTypesID] = useState('');
|
||||||
|
|
||||||
useEffect(() => { form.setValue("buildType", buildTypesID) }, [buildTypesID]);
|
useEffect(() => { form.setValue("buildType", buildTypesID) }, [buildTypesID]);
|
||||||
|
|
||||||
const { handleSubmit } = form;
|
const { handleSubmit } = form;
|
||||||
const mutation = useAddBuildMutation();
|
const mutation = useAddBuildMutation();
|
||||||
|
|
||||||
function onSubmit(values: BuildAdd) { mutation.mutate({ data: values }); setTimeout(() => refetchTable(), 400) };
|
function onSubmit(values: BuildAdd) { mutation.mutate({ data: values }); setTimeout(() => refetchTable(), 400) };
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue