@@ -46,13 +46,20 @@ export const TextField = React.forwardRef<HTMLInputElement, TextFieldProps>(
4646 ) => {
4747 const renderCharacterCount =
4848 ! hideCharacterCount && otherProps . maxGraphemeCount ;
49+ const renderDescription = description && ! otherProps . invalid ;
50+ const renderErrorMessage = errorMessage && otherProps . invalid ;
51+ const renderFooter =
52+ renderDescription || renderErrorMessage || renderCharacterCount ;
53+ const renderHeader = label || indicator ;
4954
5055 return (
5156 < SeedTextField . Root ref = { ref } { ...otherProps } >
52- < SeedTextField . Header >
53- < SeedTextField . Label > { label } </ SeedTextField . Label >
54- < SeedTextField . Indicator > { indicator } </ SeedTextField . Indicator >
55- </ SeedTextField . Header >
57+ { renderHeader && (
58+ < SeedTextField . Header >
59+ < SeedTextField . Label > { label } </ SeedTextField . Label >
60+ < SeedTextField . Indicator > { indicator } </ SeedTextField . Indicator >
61+ </ SeedTextField . Header >
62+ ) }
5663 < SeedTextField . Field >
5764 { prefixIcon && < SeedTextField . PrefixIcon svg = { prefixIcon } /> }
5865 { prefix && (
@@ -67,27 +74,31 @@ export const TextField = React.forwardRef<HTMLInputElement, TextFieldProps>(
6774 < SeedTextField . Indicator > { indicator } </ SeedTextField . Indicator >
6875 ) }
6976 </ SeedTextField . Field >
70- < SeedTextField . Footer >
71- { description && (
72- < SeedTextField . Description > { description } </ SeedTextField . Description >
73- ) }
74- { errorMessage && (
75- < SeedTextField . ErrorMessage >
76- < SeedTextField . ErrorIcon
77- svg = { < IconExclamationmarkCircleFill /> }
78- />
79- { errorMessage }
80- </ SeedTextField . ErrorMessage >
81- ) }
82- { renderCharacterCount && (
83- < SeedTextField . CharacterCountArea >
84- < SeedTextField . CharacterCount />
85- < SeedTextField . MaxCharacterCount >
86- /{ otherProps . maxGraphemeCount }
87- </ SeedTextField . MaxCharacterCount >
88- </ SeedTextField . CharacterCountArea >
89- ) }
90- </ SeedTextField . Footer >
77+ { renderFooter && (
78+ < SeedTextField . Footer >
79+ { renderDescription && (
80+ < SeedTextField . Description >
81+ { description }
82+ </ SeedTextField . Description >
83+ ) }
84+ { renderErrorMessage && (
85+ < SeedTextField . ErrorMessage >
86+ < SeedTextField . ErrorIcon
87+ svg = { < IconExclamationmarkCircleFill /> }
88+ />
89+ { errorMessage }
90+ </ SeedTextField . ErrorMessage >
91+ ) }
92+ { renderCharacterCount && (
93+ < SeedTextField . CharacterCountArea >
94+ < SeedTextField . CharacterCount />
95+ < SeedTextField . MaxCharacterCount >
96+ /{ otherProps . maxGraphemeCount }
97+ </ SeedTextField . MaxCharacterCount >
98+ </ SeedTextField . CharacterCountArea >
99+ ) }
100+ </ SeedTextField . Footer >
101+ ) }
91102 </ SeedTextField . Root >
92103 ) ;
93104 } ,
0 commit comments