Skip to content

Commit 1ddcb33

Browse files
authored
fix(textarea): Stale internal input reference when switching between themes (#1901)
(cherry picked from commit d4560eb)
1 parent 730f333 commit 1ddcb33

File tree

3 files changed

+24
-1
lines changed

3 files changed

+24
-1
lines changed

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,13 @@ All notable changes to this project will be documented in this file.
44
The format is based on [Keep a Changelog](http://keepachangelog.com/)
55
and this project adheres to [Semantic Versioning](http://semver.org/).
66

7+
## [6.3.4] - 2025-10-22
8+
### Fixed
9+
- #### Date picker
10+
- Issues when clearing the value and notch border in Material theme [#1894](https://github.com/IgniteUI/igniteui-webcomponents/pull/1894)
11+
- #### Textarea
12+
- Stale internal input reference when switching between themes
13+
714
## [6.3.3] - 2025-10-14
815
### Fixed
916
- #### Chat
@@ -1043,6 +1050,7 @@ Initial release of Ignite UI Web Components
10431050
- Ripple component
10441051
- Switch component
10451052

1053+
[6.3.4]: https://github.com/IgniteUI/igniteui-webcomponents/compare/6.3.3...6.3.4
10461054
[6.3.3]: https://github.com/IgniteUI/igniteui-webcomponents/compare/6.3.2...6.3.3
10471055
[6.3.2]: https://github.com/IgniteUI/igniteui-webcomponents/compare/6.3.1...6.3.2
10481056
[6.3.1]: https://github.com/IgniteUI/igniteui-webcomponents/compare/6.3.0...6.3.1

src/components/textarea/textarea.spec.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,21 @@ describe('Textarea component', () => {
149149
expect(prefixPart.hidden).to.be.true;
150150
expect(suffixPart.hidden).to.be.true;
151151
});
152+
153+
it('correctly recreates internal input query after re-renders', async () => {
154+
element = await fixture(html`<igc-textarea></igc-textarea>`);
155+
textArea = element.renderRoot.querySelector('textarea')!;
156+
157+
// Switching to material creates a new internal template with another textarea...
158+
configureTheme('material');
159+
await elementUpdated(element);
160+
161+
// ..thus the previously referenced non-material textarea should not match the internal query
162+
expect(textArea !== (element as any)._input).to.be.true;
163+
164+
configureTheme('bootstrap');
165+
await elementUpdated(element);
166+
});
152167
});
153168

154169
describe('Events', () => {

src/components/textarea/textarea.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ export default class IgcTextareaComponent extends FormAssociatedRequiredMixin(
111111
onChange: this._handleSlotChange,
112112
});
113113

114-
@query('textarea', true)
114+
@query('textarea')
115115
private readonly _input!: HTMLTextAreaElement;
116116

117117
protected override get __validators() {

0 commit comments

Comments
 (0)