Skip to content

Commit 28907f4

Browse files
authored
Merge pull request #743 from lumapps/fix/CMS-2064
fix(textfield): show maxlength counter when there is no label
2 parents 8717461 + 241eb7c commit 28907f4

File tree

4 files changed

+46
-10
lines changed

4 files changed

+46
-10
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
### Fixed
11+
12+
- Textfield: show the maxlength counter on textfields with no label
13+
1014
## [2.1.6][] - 2021-12-03
1115

1216
### Fixed

packages/lumx-core/src/scss/components/text-field/_index.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
display: flex;
4040
flex-shrink: 0;
4141
align-items: center;
42-
margin-left: $lumx-spacing-unit;
42+
margin-left: auto;
4343

4444
span {
4545
font-size: var(--lumx-material-text-field-header-label-font-size);

packages/lumx-react/src/components/text-field/TextField.stories.tsx

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,3 +137,33 @@ export const WithAfterElement = ({ theme }: any) => {
137137
/>
138138
);
139139
};
140+
141+
export const WithMaxLengthNoLabel = ({ theme }: any) => {
142+
const [value, onChange] = React.useState('Value');
143+
const multiline = boolean('Multiline', true);
144+
const minimumRows = number('Minimum number of rows', 2, { min: 0, max: 100 });
145+
const isClearable = boolean('Clearable', true);
146+
const hasError = boolean('Has error', true);
147+
return (
148+
<TextField
149+
value={value}
150+
placeholder={text('Placeholder', 'Placeholder')}
151+
theme={theme}
152+
onChange={onChange}
153+
multiline={multiline}
154+
minimumRows={minimumRows}
155+
hasError={hasError}
156+
maxLength={200}
157+
clearButtonProps={isClearable ? { label: 'Clear' } : undefined}
158+
helper={<span>{text('Helper', 'Helper')}</span>}
159+
afterElement={
160+
<IconButton
161+
label="foo"
162+
emphasis={emphasis('Button emphasis', Emphasis.medium, 'After element')}
163+
size={buttonSize('Button size', Size.s, 'After element')}
164+
icon={mdiTranslate}
165+
/>
166+
}
167+
/>
168+
);
169+
};

packages/lumx-react/src/components/text-field/TextField.tsx

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -307,16 +307,18 @@ export const TextField: Comp<TextFieldProps, HTMLDivElement> = forwardRef((props
307307
}),
308308
)}
309309
>
310-
{label && (
310+
{(label || maxLength) && (
311311
<div className={`${CLASSNAME}__header`}>
312-
<InputLabel
313-
htmlFor={textFieldId}
314-
className={`${CLASSNAME}__label`}
315-
isRequired={isRequired}
316-
theme={theme}
317-
>
318-
{label}
319-
</InputLabel>
312+
{label && (
313+
<InputLabel
314+
htmlFor={textFieldId}
315+
className={`${CLASSNAME}__label`}
316+
isRequired={isRequired}
317+
theme={theme}
318+
>
319+
{label}
320+
</InputLabel>
321+
)}
320322

321323
{maxLength && (
322324
<div className={`${CLASSNAME}__char-counter`}>

0 commit comments

Comments
 (0)