forked from PaloAltoNetworks/docusaurus-openapi-docs
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.tsx
More file actions
87 lines (79 loc) · 2.22 KB
/
Copy pathindex.tsx
File metadata and controls
87 lines (79 loc) · 2.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
/* ============================================================================
* Copyright (c) Palo Alto Networks
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
* ========================================================================== */
// @ts-nocheck
import React from "react";
import { translate } from "@docusaurus/Translate";
import { ErrorMessage } from "@hookform/error-message";
import { OPENAPI_FORM } from "@theme/translationIds";
import clsx from "clsx";
import { useFormContext } from "react-hook-form";
export interface Props {
value?: string;
placeholder?: string;
password?: boolean;
onChange?: React.ChangeEventHandler<HTMLInputElement>;
}
function FormTextInput({
isRequired,
value,
placeholder,
password,
onChange,
paramName,
}: Props) {
placeholder = placeholder?.split("\n")[0];
const {
register,
formState: { errors },
} = useFormContext();
const showErrorMessage = errors?.[paramName]?.message;
return (
<>
{paramName ? (
<input
{...register(paramName, {
required: isRequired
? translate({
id: OPENAPI_FORM.FIELD_REQUIRED,
message: "This field is required",
})
: false,
})}
className={clsx("openapi-explorer__form-item-input", {
error: showErrorMessage,
})}
type={password ? "password" : "text"}
placeholder={placeholder}
title={placeholder}
value={value}
onChange={onChange}
autoComplete="off"
/>
) : (
<input
className="openapi-explorer__form-item-input"
type={password ? "password" : "text"}
placeholder={placeholder}
title={placeholder}
value={value}
onChange={onChange}
autoComplete="off"
/>
)}
{showErrorMessage && (
<ErrorMessage
errors={errors}
name={paramName}
render={({ message }) => (
<div className="openapi-explorer__input-error">{message}</div>
)}
/>
)}
</>
);
}
export default FormTextInput;