Skip to content

Commit 452b8b5

Browse files
committed
Init build form
1 parent dbf834e commit 452b8b5

File tree

1 file changed

+53
-1
lines changed

1 file changed

+53
-1
lines changed

src/pages/CreateApp/BuildStep.tsx

Lines changed: 53 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,41 @@ import { type FC } from 'react';
22
import { CreateLayout } from './CreateLayout';
33
import { CreateFormHeader } from './CreateFormHeader';
44
import { CreateFormNavigation } from './CreateFormNavigation';
5+
import { z } from 'zod';
6+
import { zodResolver } from '@hookform/resolvers/zod';
7+
import { useForm } from 'react-hook-form';
8+
import { InputFormField } from './InputFormField';
9+
10+
const formSchema = z.object({
11+
artifacts: z.string().min(1, {
12+
message: 'Artifacts are required.',
13+
}),
14+
provider: z.string().min(1, {
15+
message: 'Provider is required.',
16+
}),
17+
});
518

619
type AgentStepProps = {
720
handleNext: () => void;
821
handleBack: () => void;
922
};
1023

1124
export const BuildStep: FC<AgentStepProps> = ({ handleNext, handleBack }) => {
25+
const form = useForm<z.infer<typeof formSchema>>({
26+
resolver: zodResolver(formSchema),
27+
defaultValues: {
28+
artifacts: 'oasis boot 0.5.0, ROFL container 0.5.1',
29+
provider: 'OPF',
30+
},
31+
});
32+
33+
const onSubmit = (values: z.infer<typeof formSchema>) => {
34+
console.log('Metadata values:', values);
35+
handleNext();
36+
};
37+
38+
const formHasErrors = !form.formState.isValid;
39+
1240
return (
1341
<CreateLayout
1442
currentStep={3}
@@ -24,7 +52,31 @@ export const BuildStep: FC<AgentStepProps> = ({ handleNext, handleBack }) => {
2452
title="Build and Deploy"
2553
description="At varius sit sit netus at integer vitae posuere id. Nulla imperdiet vestibulum amet ultrices egestas. Bibendum sed integer ac eget."
2654
/>
27-
<CreateFormNavigation handleNext={handleNext} handleBack={handleBack} />
55+
56+
<form
57+
onSubmit={form.handleSubmit(onSubmit)}
58+
className="space-y-6 mb-6 w-full"
59+
>
60+
<InputFormField
61+
control={form.control}
62+
name="artifacts"
63+
label="Base Artifacts"
64+
placeholder="oasis boot 0.5.0, ROFL container 0.5.1"
65+
/>
66+
67+
<InputFormField
68+
control={form.control}
69+
name="provider"
70+
label="Provider"
71+
placeholder="OPF"
72+
/>
73+
74+
<CreateFormNavigation
75+
handleNext={handleNext}
76+
handleBack={handleBack}
77+
disabled={formHasErrors}
78+
/>
79+
</form>
2880
</CreateLayout>
2981
);
3082
};

0 commit comments

Comments
 (0)