diff --git a/packages/react-params/src/Param/Enum.tsx b/packages/react-params/src/Param/Enum.tsx index ca25a39c8c..8d64acbcf7 100644 --- a/packages/react-params/src/Param/Enum.tsx +++ b/packages/react-params/src/Param/Enum.tsx @@ -24,7 +24,7 @@ interface Options { } interface Initial { - initialEnum: string | null; + initialEnum: string | undefined | null; initialParams: RawParam[] | undefined | null; } @@ -46,13 +46,13 @@ function getOptions (registry: Registry, type: TypeDef): Options { }; } -function getInitial (defaultValue: RawParam): Initial { +function getInitial (defaultValue: RawParam, options: Option[]): Initial { return { initialEnum: defaultValue && defaultValue.value ? defaultValue.value instanceof Enum ? defaultValue.value.type : Object.keys(defaultValue.value as Record)[0] - : null, + : options[0] && options[0].value, initialParams: defaultValue && defaultValue.value ? defaultValue.value instanceof Enum ? [{ isValid: true, value: defaultValue.value.inner }] @@ -73,7 +73,7 @@ function EnumParam (props: Props): React.ReactElement { const { className = '', defaultValue, isDisabled, isError, label, onChange, overrides, registry, type, withLabel } = props; const [{ options, subTypes }] = useState(() => getOptions(registry, type)); const [current, setCurrent] = useState(() => getCurrent(registry, type, defaultValue, subTypes)); - const [{ initialEnum, initialParams }, setInitial] = useState(() => getInitial(defaultValue)); + const [{ initialEnum, initialParams }, setInitial] = useState(() => getInitial(defaultValue, options)); const _onChange = useCallback( (value: string): void => { diff --git a/packages/react-params/src/Param/Tuple.tsx b/packages/react-params/src/Param/Tuple.tsx index 787c315e8e..f64e54191c 100644 --- a/packages/react-params/src/Param/Tuple.tsx +++ b/packages/react-params/src/Param/Tuple.tsx @@ -14,13 +14,13 @@ import useParamDefs from './useParamDefs'; function getInitialValues ({ value }: RawParam): RawParam[] { return value instanceof Tuple - ? value.map((value) => ({ isValid: true, value: value as unknown })) + ? value.map((value: unknown) => ({ isValid: true, value })) : value as RawParam[]; } function TupleDisplay (props: Props): React.ReactElement { - const params = useParamDefs(props.registry, props.type); - const { className = '', defaultValue, isDisabled, label, onChange, overrides, withLabel } = props; + const { className = '', defaultValue, isDisabled, label, onChange, overrides, registry, type, withLabel } = props; + const params = useParamDefs(registry, type); const [values] = useState(() => getInitialValues(defaultValue)); const _onChangeParams = useCallback( @@ -48,7 +48,7 @@ function TupleDisplay (props: Props): React.ReactElement { onChange={_onChangeParams} overrides={overrides} params={params} - registry={props.registry} + registry={registry} values={values} />