1- import { Box, useFocusManager, useInput } from 'ink';
2- import { useEffect, useMemo, useState } from 'react';
1+ import { Box, measureElement, useFocusManager, useInput } from 'ink';
2+ import { useEffect, useMemo, useRef, useState } from 'react';
33import * as React from 'react';
44import { FormProps } from './types.js';
55import { FormHeader } from './FormHeader.js';
@@ -21,6 +21,8 @@ export const Form: React.FC<FormProps> = props => {
2121 const canSubmitForm = useMemo(() => canSubmit(props.form, value), [value, props.form]);
2222 const focusManager = useFocusManager();
2323 const [focusedElement, setFocusedElement] = useState(0);
24+ const headerRef = useRef();
25+ const headerHeight = headerRef.current ? measureElement(headerRef.current).height : 5
2426
2527 useEffect(() => {
2628 focusManager.enableFocus();
@@ -118,8 +120,8 @@ export const Form: React.FC<FormProps> = props => {
118120 return (
119121 <FullScreen>
120122 <Box width="100%" height="90%" flexDirection="column" overflowY="hidden">
121- <FormHeader {...props} form={{ ...props.form, sections }} currentTab={currentTab} onChangeTab={onChangeTab} editingField={editingField} />
122- <ScrollArea height={size.rows - 6 } key={currentTab} isStart={focusedElement === 0}>
123+ <FormHeader {...props} headerRef={headerRef} form={{ ...props.form, sections }} currentTab={currentTab} onChangeTab={onChangeTab} editingField={editingField} />
124+ <ScrollArea height={size.rows - headerHeight } key={currentTab} isStart={focusedElement === 0}>
123125 {!editingField && sections[currentTab].description && (
124126 <Box marginX={4}>
125127 <DescriptionRenderer description={props.form.sections[currentTab]?.description} />
0 commit comments