Skip to content

Potential Problem with Cloning Header Element in resize.ts #189

Open
@nsrau

Description

@nsrau

Description
The code snippet in the resize.ts file clones the parent element of a header cell in the grid using the following line:

const headerTextClone: Element = (<HTMLElement>headerTable.querySelector('[e-mappinguid="' + uid + '"]').parentElement.cloneNode(true));

If the parentElement is null or the selector does not match any element, this could result in a runtime error.

Uncaught TypeError: Cannot read properties of null (reading 'parentElement') at Resize2.resizeColumn (resize.js:115:87) at Resize2.findColumn (resize.js:242:22) at Resize2.autoFitColumns (resize.js:68:14) at Resize2.autoFit (resize.js:80:18) at Observer2.notify (observer.js:102:29) at Component2.notify (component.js:338:32) at content-renderer.js:78:30 at util.js:63:13

Expected Behavior
The cloning operation should be efficient, safe, and handle edge cases (e.g., when parentElement is null).

Suggested Fix
Add a null-check for parentElement before attempting to clone it

const headerCell = headerTable.querySelector('[e-mappinguid="' + uid + '"]'); const parentElement = headerCell ? headerCell.parentElement : null; if (parentElement) { const headerTextClone: Element = parentElement.cloneNode(true); }

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions