diff --git a/.changeset/fix-autosize-position-fixed.md b/.changeset/fix-autosize-position-fixed.md new file mode 100644 index 000000000..5c96c95f4 --- /dev/null +++ b/.changeset/fix-autosize-position-fixed.md @@ -0,0 +1,5 @@ +--- +"@tabler/core": patch +--- + +Fixed autosize not resizing a `position: fixed` textarea. diff --git a/core/js/src/autosize.ts b/core/js/src/autosize.ts index e71a908eb..7b5fbf2e1 100644 --- a/core/js/src/autosize.ts +++ b/core/js/src/autosize.ts @@ -92,7 +92,7 @@ class Autosize extends BaseComponent { // Public update(): void { const element = this._element - if (!element.isConnected || element.offsetParent === null) { + if (!element.isConnected || element.getClientRects().length === 0) { return } diff --git a/core/js/tests/unit/autosize.spec.ts b/core/js/tests/unit/autosize.spec.ts index b28168987..cc61e5e85 100644 --- a/core/js/tests/unit/autosize.spec.ts +++ b/core/js/tests/unit/autosize.spec.ts @@ -85,6 +85,16 @@ describe('Autosize', () => { expect(height()).toBe(46) }) + + it('should still update a position: fixed field', () => { + textarea().style.position = 'fixed' + const instance = new Autosize(textarea()) + + textarea().value = lines(3) + instance.update() + + expect(height()).toBe(60) + }) }) describe('dispose', () => {