@@ -47,9 +47,18 @@ export const Form: React.FC<FormProps> = props => {
4747 }
4848 } , [ ] ) ;
4949
50+ const onSetEditingField = ( field ?: string ) => {
51+ const isEditing = ! ! editingField ;
52+ if ( ! isEditing && field ) {
53+ const elementNum = sections [ currentTab ] . fields . findIndex ( ( f ) => f . name === field ) ;
54+ setFocusedElement ( elementNum + 1 ) ;
55+ }
56+
57+ setEditingField ( field ) ;
58+ }
59+
5060 const onChangeTab = ( tab : number ) => {
5161 setCurrentTab ( tab ) ;
52- focusManager . focus ( '0' ) ;
5362 setFocusedElement ( 0 )
5463 }
5564
@@ -107,7 +116,7 @@ export const Form: React.FC<FormProps> = props => {
107116 < FullScreen >
108117 < Box width = "100%" height = "90%" flexDirection = "column" overflowY = "hidden" >
109118 < FormHeader { ...props } headerRef = { headerRef } form = { form } currentTab = { currentTab } onChangeTab = { onChangeTab } editingField = { editingField } />
110- < ScrollArea height = { fullHeight - headerHeight } key = { currentTab } isStart = { focusedElement === 0 } >
119+ < ScrollArea height = { fullHeight - headerHeight } key = { currentTab } isStart = { focusedElement === 0 } editingMode = { ! ! editingField } >
111120 { ! editingField && sections [ currentTab ] . description && (
112121 < Box marginX = { 4 } >
113122 < DescriptionRenderer description = { sections [ currentTab ] ?. description } />
@@ -126,13 +135,13 @@ export const Form: React.FC<FormProps> = props => {
126135 ? null
127136 : sections [ currentTab ] . fields . map ( ( field , index ) => (
128137 < FormFieldRenderer
129- id = { index + '' }
138+ id = { ` ${ index } ` }
130139 field = { field }
131140 key = { field . name + currentTab }
132141 form = { form }
133142 value = { value [ currentTab ] [ field . name ] }
134143 onChange = { v => setValueAndPropagate ( currentTab , { ...value [ currentTab ] , [ field . name ] : v } ) }
135- onSetEditingField = { setEditingField }
144+ onSetEditingField = { onSetEditingField }
136145 editingField = { editingField }
137146 customManagers = { props . customManagers }
138147 />
0 commit comments