@@ -3,7 +3,12 @@ import clsx from "clsx";
3
3
import HelperMessage from "./HelperMessage" ;
4
4
import "./Input.scss" ;
5
5
6
- export type InputVariants = "general" | "success" | "error" | "warning" ;
6
+ export type InputVariants =
7
+ | "general"
8
+ | "success"
9
+ | "error"
10
+ | "warning"
11
+ | "disabled" ;
7
12
interface InputProps
8
13
extends Omit < ComponentProps < "input" > , "style" | "placeholder" > {
9
14
label ?: string ;
@@ -15,17 +20,19 @@ interface InputProps
15
20
}
16
21
17
22
const InputVariant : Record < InputVariants , string > = {
18
- general : "deriv-input--field__general" ,
19
- success : "deriv-input--field__success" ,
20
- warning : "deriv-input--field__general" ,
21
- error : "deriv-input--field__error" ,
23
+ general : "deriv-input__general" ,
24
+ success : "deriv-input__success" ,
25
+ warning : "deriv-input__general" ,
26
+ error : "deriv-input__error" ,
27
+ disabled : "deriv-input__disabled" ,
22
28
} ;
23
29
24
30
const LabelVariant : Record < InputVariants , string > = {
25
31
general : "deriv-input--label__general" ,
26
32
success : "deriv-input--label__success" ,
27
33
warning : "deriv-input--label__general" ,
28
34
error : "deriv-input--label__error" ,
35
+ disabled : "deriv-input--label__disabled" ,
29
36
} ;
30
37
31
38
export const Input = ( {
@@ -41,24 +48,33 @@ export const Input = ({
41
48
...rest
42
49
} : InputProps ) => {
43
50
return (
44
- < div className = "deriv-input" >
51
+ < div
52
+ className = { clsx (
53
+ "deriv-input" ,
54
+ className ,
55
+ InputVariant [ error ? "error" : variant ] ,
56
+ {
57
+ "deriv-input__disabled" : disabled ,
58
+ }
59
+ ) }
60
+ >
45
61
{ leftPlaceholder && (
46
62
< div className = "deriv-input--left-content" > { leftPlaceholder } </ div >
47
63
) }
48
64
< input
49
65
placeholder = { label }
50
- className = { clsx (
51
- "deriv-input--field" ,
52
- className ,
53
- InputVariant [ error ? "error" : variant ]
54
- ) }
66
+ className = "deriv-input--field"
55
67
id = { id }
68
+ disabled = { disabled }
56
69
{ ...rest }
57
70
/>
58
71
< label
59
72
className = { clsx (
60
73
"deriv-input--label" ,
61
- LabelVariant [ error ? "error" : variant ]
74
+ LabelVariant [ error ? "error" : variant ] ,
75
+ {
76
+ "deriv-input--label__disabled" : disabled ,
77
+ }
62
78
) }
63
79
htmlFor = { id }
64
80
>
0 commit comments