/** * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * @format */ import {Modal, Button, Alert, Input, Typography} from 'antd'; import {Layout} from 'flipper-plugin'; import { replaceRequiredParametersWithValues, parameterIsNumberType, parameterIsBooleanType, validateParameter, liveEdit, } from '../util/uri'; import {useRequiredParameterFormValidator} from '../hooks/requiredParameters'; import React from 'react'; import {URI} from '../types'; type Props = { uri: string; requiredParameters: Array; onHide: () => void; onSubmit: (uri: URI) => void; }; export function RequiredParametersDialog(props: Props) { const {onHide, onSubmit, uri, requiredParameters} = props; const {isValid, values, setValuesArray} = useRequiredParameterFormValidator(requiredParameters); return ( }> {requiredParameters.map((paramater, idx) => (
) => setValuesArray([ ...values.slice(0, idx), event.target.value, ...values.slice(idx + 1), ]) } name={paramater} placeholder={paramater} /> {values[idx] && parameterIsNumberType(paramater) && !validateParameter(values[idx], paramater) ? ( ) : null} {values[idx] && parameterIsBooleanType(paramater) && !validateParameter(values[idx], paramater) ? ( ) : null}
))} {liveEdit(uri, values)}
); }