Skip to content

Commit b60b6cf

Browse files
author
magomedov_gusein
committed
feat: Added react version of M3TextField
1 parent 44ab1da commit b60b6cf

File tree

2 files changed

+51
-0
lines changed

2 files changed

+51
-0
lines changed
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
import React, {HTMLAttributes} from 'react'
2+
3+
import makeId from '@/utils/id'
4+
import { toClassName } from '@/utils/styling'
5+
6+
export interface M3TextFieldProps extends HTMLAttributes<HTMLElement> {
7+
id: string;
8+
type: string;
9+
value: string|number;
10+
label: string;
11+
placeholder: string;
12+
lazy: boolean;
13+
multiline: boolean;
14+
invalid: boolean;
15+
disabled: boolean;
16+
readonly: boolean;
17+
outlined: boolean;
18+
}
19+
20+
const M3TextField: React.FC<M3TextFieldProps> = ({
21+
id = makeId('m3-text-field'),
22+
type = 'text',
23+
value = '',
24+
label = '',
25+
placeholder = '',
26+
lazy = false,
27+
multiline = false,
28+
invalid = false,
29+
disabled = false,
30+
readonly = false,
31+
outlined = false,
32+
className = '',
33+
}) => (
34+
<div
35+
className={toClassName([className, {
36+
'm3-text-field': true,
37+
'm3-text-field_outlined': outlined,
38+
// 'm3-text-field_has-leading': 'leading-icon' in $slots,
39+
// 'm3-text-field_has-trailing': 'trailing-icon' in $slots,
40+
// 'm3-text-field_filled': ('' + value).length,
41+
// 'm3-text-field_focused': focused,
42+
'm3-text-field_invalid': invalid,
43+
'm3-text-field_disabled': disabled,
44+
'm3-text-field_readonly': readonly,
45+
}])}
46+
>
47+
48+
</div>
49+
)
50+
51+
export default M3TextField

m3-react/src/components/text-field/index.ts

Whitespace-only changes.

0 commit comments

Comments
 (0)