1- import { Stack , HStack , Button } from "@chakra-ui/react" ;
2- import { useEffect , useState } from "react" ;
3- import { useForm , FormProvider } from "react-hook-form" ;
1+ import { Button , HStack , Stack } from "@chakra-ui/react" ;
2+ import { FormProvider } from "react-hook-form" ;
43import { IoSendOutline } from "react-icons/io5" ;
54import ChatBox from "../../components/internal-ui/ChatBox" ;
6- import useGptStore from "../../utils/store" ;
7- import { UserType , ENDPOINTS , BugFixFields } from "../constants" ;
8- import { BugFixFormData , ApiRequestBugFix } from "../model" ;
9- import { v4 as uuid } from "uuid" ;
105import Input from "../../components/internal-ui/Input" ;
6+ import useFormHandler from "../../hooks/useFormHandler" ;
7+ import { bugFixMapper } from "../../utils/mapperFunctions" ;
8+ import useGptStore from "../../utils/store" ;
9+ import { bugFixDefaultValues , BugFixFields , ENDPOINTS } from "../constants" ;
10+ import { ApiRequestBugFix , BugFixFormData } from "../model" ;
1111
1212const BugFix = ( ) => {
13- const formMethods = useForm < BugFixFormData > ( {
14- defaultValues : {
15- minToken : 100 ,
16- maxToken : 500 ,
17- service : "terraform" ,
18- version : "latest" ,
19- bugDescription : undefined ,
20- } ,
21- mode : "onSubmit" ,
22- } ) ;
23-
24- const { handleSubmit } = formMethods ;
13+ const { request, handleSubmit, onSubmit, formMethods } = useFormHandler <
14+ BugFixFormData ,
15+ ApiRequestBugFix
16+ > ( bugFixDefaultValues ) ;
2517
2618 const messages = useGptStore ( ( s ) => s . messages ) ;
27- const addMessage = useGptStore ( ( s ) => s . addMessage ) ;
28- const [ req , setReq ] = useState < ApiRequestBugFix | null > ( null ) ;
29-
30- const onSubmit = ( data : BugFixFormData ) => {
31- addMessage ( UserType . USER , data . bugDescription , uuid ( ) ) ;
32- const request : ApiRequestBugFix = {
33- min_token : data . minToken ,
34- max_token : data . maxToken ,
35- service : data . service ,
36- bug_description : data . bugDescription ,
37- version : data . version ,
38- requestId : uuid ( ) ,
39- } ;
40- if ( data . bugDescription ) setReq ( request ) ;
41- } ;
4219
43- useEffect ( ( ) => {
44- return ( ) => setReq ( null ) ;
45- } , [ ] ) ;
20+ const handleFormSubmit = handleSubmit ( ( data ) => {
21+ onSubmit ( bugFixMapper ( data ) , data . bugDescription ) ;
22+ } ) ;
4623
4724 return (
4825 < div >
4926 < FormProvider { ...formMethods } >
50- < form onSubmit = { ( e ) => void handleSubmit ( onSubmit ) ( e ) } >
27+ < form onSubmit = { handleFormSubmit } >
5128 < Stack gap = "3" justifyContent = "center" alignItems = "center" >
5229 < div className = "flex gap-2" >
5330 < Input fieldName = { BugFixFields . MIN_TOKEN } label = "Min token" />
@@ -57,9 +34,9 @@ const BugFix = () => {
5734 </ div >
5835 < ChatBox
5936 endpoint = { ENDPOINTS . postFix }
60- request = { req }
37+ request = { request }
6138 messageData = { messages }
62- id = { req ?. requestId ?? "" }
39+ id = { request ?. requestId ?? "" }
6340 />
6441 < HStack
6542 mt = "3"
0 commit comments