diff --git a/src/fireedge/src/client/containers/TestApi/ResponseForm.js b/src/fireedge/src/client/containers/TestApi/ResponseForm.js
index 7f50487a0b..8442c6f9ff 100644
--- a/src/fireedge/src/client/containers/TestApi/ResponseForm.js
+++ b/src/fireedge/src/client/containers/TestApi/ResponseForm.js
@@ -35,14 +35,14 @@ const ResponseForm = ({
handleChangeResponse,
command: { name, httpMethod, params }
}) => {
- const { control, handleSubmit, errors, formState } = useForm()
+ const { control, handleSubmit, formState } = useForm()
const memoParams = useMemo(() => Object.entries(params), [name])
const onSubmit = async dataForm => {
try {
const config = requestConfig(dataForm, { name, httpMethod, params })
- const { id, ...res } = await RestClient.request(config) ?? {}
+ const res = await RestClient.request(config) ?? {}
handleChangeResponse(JSON.stringify(res, null, '\t'))
} catch (err) {
handleChangeResponse(JSON.stringify(err.data, null, '\t'))
@@ -68,66 +68,70 @@ const ResponseForm = ({
onSubmit={handleSubmit(onSubmit)}
autoComplete='off'
>
- {memoParams?.map(([nameParam, { default: defaultValue }]) => (
-
- ({
- boolean: onChange(e.target.checked)}
- />
- )}
- label={nameParam}
- labelPlacement='end'
- />,
- object: onChange(newValue ?? '')}
- renderTags={(tags, getTagProps) =>
- tags.map((tag, index) => (
- {
+ const { message: errorMessage } = formState.errors[paramName] ?? {}
+
+ return (
+
+ ({
+ boolean: onChange(e.target.checked)}
/>
- ))
- }
- renderInput={(params) => (
-
- )}
- />
- }[typeof defaultValue] ?? (
-
- ))}
- control={control}
- name={`${nameParam}`}
- defaultValue={defaultValue}
- />
-
- ))}
+ )}
+ label={paramName}
+ labelPlacement='end'
+ />,
+ object: onChange(newValue ?? '')}
+ renderTags={(tags, getTagProps) =>
+ tags.map((tag, index) => (
+
+ ))
+ }
+ renderInput={(params) => (
+
+ )}
+ />
+ }[typeof defaultValue] ?? (
+
+ ))}
+ control={control}
+ name={`${paramName}`}
+ defaultValue={defaultValue}
+ />
+
+ )
+ })}
COMMANDS[0])
const [response, setResponse] = useState('')
- const handleChangeCommand = evt => setName(evt?.target?.value)
+ const handleChangeCommand = (_, value) => setName(value)
const handleChangeResponse = res => setResponse(res)
return (
@@ -46,23 +46,16 @@ function TestApi () {
>
- COMMANDS, [])}
value={name}
onChange={handleChangeCommand}
- >
-
- {useMemo(() =>
- COMMANDS.map(commandName => (
-
- ), [])
+ renderInput={(params) => (
+
)}
-
+ />
{name && name !== '' && (
[/* To add the fields validation */], [])
+ const resolver = useMemo(() => object() /* To add the form schema */, [])
+
+ const methods = useForm({
+ mode: 'onSubmit',
+ defaultValues: resolver.default(),
+ resolver: yupResolver(resolver, { isSubmit: true })
+ })
+
+ const onSubmit = values => {
+ console.log({ values })
+ }
+
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
+export default TestForm
diff --git a/src/fireedge/src/client/router/dev.js b/src/fireedge/src/client/router/dev.js
index 3bf65ae368..c8fc046e8d 100644
--- a/src/fireedge/src/client/router/dev.js
+++ b/src/fireedge/src/client/router/dev.js
@@ -17,9 +17,11 @@ import loadable from '@loadable/component'
import { Code as DevIcon } from 'iconoir-react'
const TestApi = loadable(() => import('client/containers/TestApi'), { ssr: false })
+const TestForm = loadable(() => import('client/containers/TestForm'), { ssr: false })
export const PATH = {
- TEST_API: '/test-api'
+ TEST_API: '/test-api',
+ TEST_FORM: '/test-form'
}
export const ENDPOINTS = [
@@ -30,6 +32,14 @@ export const ENDPOINTS = [
sidebar: true,
icon: DevIcon,
Component: TestApi
+ },
+ {
+ label: 'Test Form',
+ path: PATH.TEST_FORM,
+ devMode: true,
+ sidebar: true,
+ icon: DevIcon,
+ Component: TestForm
}
]