-
Notifications
You must be signed in to change notification settings - Fork 611
Expand file tree
/
Copy pathLinkedTextField.tsx
More file actions
66 lines (63 loc) · 1.29 KB
/
LinkedTextField.tsx
File metadata and controls
66 lines (63 loc) · 1.29 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
import React from "react"
import { TextField } from "@mui/material"
import ExternalLink from "./ExternalLink"
export interface LinkedTextFieldProps {
href: string
linkTitle: string
value: string | undefined
label: string
onChange: (e: string) => void
onBlur?: () => void
helperText: string | JSX.Element
extraAction?: JSX.Element
required?: true
disabled?: boolean
id?: string
error?: boolean
size?: "small" | "medium"
}
const LinkedTextField: React.FC<LinkedTextFieldProps> = ({
href,
linkTitle,
label,
value,
onChange,
onBlur,
required,
helperText,
disabled,
extraAction,
id,
error,
size = "small",
}) => {
return (
<TextField
InputProps={{
endAdornment: (
<span
style={{
display: "inline-flex",
}}
>
{extraAction}
<ExternalLink href={href} title={linkTitle} hover />
</span>
),
}}
id={id}
size={size}
variant="outlined"
fullWidth
label={label}
value={value === undefined ? "" : value}
onChange={e => onChange(e.target.value)}
onBlur={onBlur}
required={required}
helperText={helperText}
disabled={disabled}
error={error}
/>
)
}
export default LinkedTextField