@@ -2,13 +2,41 @@ import { type FC } from 'react';
22import { CreateLayout } from './CreateLayout' ;
33import { CreateFormHeader } from './CreateFormHeader' ;
44import { 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
619type AgentStepProps = {
720 handleNext : ( ) => void ;
821 handleBack : ( ) => void ;
922} ;
1023
1124export 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