// Copyright 2017-2025 @pezkuwi/app-contracts authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { RawParams } from '@pezkuwi/react-params/types'; import type { Registry, TypeDef } from '@pezkuwi/types/types'; import React, { useCallback, useEffect, useState } from 'react'; import UIParams from '@pezkuwi/react-params'; interface Props { isDisabled?: boolean; params?: ParamDef[] | null | ''; onChange: (values: unknown[]) => void; onEnter?: () => void; registry: Registry; } interface ParamDef { name: string; type: TypeDef; } function Params ({ isDisabled, onChange, onEnter, params: propParams, registry }: Props): React.ReactElement | null { const [params, setParams] = useState([]); useEffect((): void => { propParams && setParams(propParams); }, [propParams]); const _onChange = useCallback( (values: RawParams) => onChange(values.map(({ value }) => value)), [onChange] ); if (!params.length) { return null; } return ( ); } export default React.memo(Params);