@@ -9,7 +9,6 @@ import { checkModelNameExists, setPageTitle } from "../../utils";
99
1010import {
1111 modelsListState ,
12- newModelState ,
1312 filteredModelsListState ,
1413} from "../../state/modelsState" ;
1514import {
@@ -33,7 +32,8 @@ function CreateModelForm({
3332 const location = useLocation ( ) ;
3433 const { id } = useParams ( ) ;
3534 const brandId = useAtomValue ( brandIdState ) ;
36- const [ newModel , setNewModel ] = useAtom ( newModelState ) ;
35+ const [ newModelName , setNewModelName ] = useState ( "" ) ;
36+ const [ apiKey , setApiKey ] = useState ( "" ) ;
3737 const stores = useAtom ( brandStoresState ) ;
3838 const currentStore = stores [ 0 ] . find ( ( store : Store ) => store . id === id ) ;
3939 const modelsList = useAtomValue ( filteredModelsListState ) ;
@@ -47,10 +47,11 @@ function CreateModelForm({
4747 setShowErrorNotification ( true ) ;
4848 setIsSaving ( false ) ;
4949 setModelsList ( ( oldModelsList : Array < Model > ) => {
50- return oldModelsList . filter ( ( model ) => model . name !== newModel . name ) ;
50+ return oldModelsList . filter ( ( model ) => model . name !== newModelName ) ;
5151 } ) ;
5252 navigate ( `/admin/${ id } /models` ) ;
53- setNewModel ( { name : "" , apiKey : "" } ) ;
53+ setNewModelName ( "" ) ;
54+ setApiKey ( "" ) ;
5455 setTimeout ( ( ) => {
5556 setShowErrorNotification ( false ) ;
5657 } , 5000 ) ;
@@ -66,8 +67,8 @@ function CreateModelForm({
6667 formData . set ( "name" , newModel . name ) ;
6768 formData . set ( "api_key" , newModel . apiKey ) ;
6869
69- setNewModel ( { name : "" , apiKey : "" } ) ;
70-
70+ setNewModelName ( "" ) ;
71+ setApiKey ( "" ) ;
7172 setModelsList ( ( oldModelsList : Array < Model > ) => {
7273 return [
7374 {
@@ -115,7 +116,7 @@ function CreateModelForm({
115116 < form
116117 onSubmit = { ( event ) => {
117118 event . preventDefault ( ) ;
118- mutation . mutate ( { name : newModel . name , apiKey : newModel . apiKey } ) ;
119+ mutation . mutate ( { name : newModelName , apiKey } ) ;
119120 } }
120121 style = { { height : "100%" } }
121122 >
@@ -144,14 +145,13 @@ function CreateModelForm({
144145 placeholder = "e.g. display-name-123"
145146 label = "Name"
146147 help = "Name should contain lowercase alphanumeric characters and hyphens only"
147- value = { newModel . name }
148+ value = { newModelName }
148149 onChange = { ( e ) => {
149- const value = e . target . value ;
150- setNewModel ( { ...newModel , name : value } ) ;
150+ setNewModelName ( e . target . value ) ;
151151 } }
152152 error = {
153- checkModelNameExists ( newModel . name , modelsList )
154- ? `Model ${ newModel . name } already exists`
153+ checkModelNameExists ( newModelName , modelsList )
154+ ? `Model ${ newModelName } already exists`
155155 : null
156156 }
157157 required
@@ -160,21 +160,20 @@ function CreateModelForm({
160160 type = "text"
161161 id = "api-key-field"
162162 label = "API key"
163- value = { newModel . apiKey }
164- placeholder = "yx6dnxsWQ3XUB5gza8idCuMvwmxtk1xBpa9by8TuMit5dgGnv"
163+ value = { apiKey }
165164 className = "read-only-dark"
166- readOnly
165+ required
166+ maxLength = { 50 }
167+ onChange = { ( e ) => {
168+ setApiKey ( e . target . value ) ;
169+ } }
170+ help = { `API key should be 50 alphanumeric characters long (${ apiKey . length } /50)` }
167171 />
168172 < Button
169173 type = "button"
170174 className = "u-no-margin--bottom"
171175 onClick = { ( ) => {
172- setNewModel ( {
173- ...newModel ,
174- apiKey : randomstring . generate ( {
175- length : 50 ,
176- } ) ,
177- } ) ;
176+ setApiKey ( randomstring . generate ( { length : 50 } ) ) ;
178177 } }
179178 >
180179 Generate key
@@ -188,7 +187,8 @@ function CreateModelForm({
188187 className = "p-button u-no-margin--bottom"
189188 to = { `/admin/${ id } /models` }
190189 onClick = { ( ) => {
191- setNewModel ( { name : "" , apiKey : "" } ) ;
190+ setNewModelName ( "" ) ;
191+ setApiKey ( "" ) ;
192192 setShowErrorNotification ( false ) ;
193193 } }
194194 >
@@ -199,8 +199,9 @@ function CreateModelForm({
199199 appearance = "positive"
200200 className = "u-no-margin--bottom u-no-margin--right"
201201 disabled = {
202- ! newModel . name ||
203- checkModelNameExists ( newModel . name , modelsList )
202+ ! newModelName ||
203+ apiKey . length !== 50 ||
204+ checkModelNameExists ( newModelName , modelsList )
204205 }
205206 >
206207 Add model
0 commit comments