Skip to content

JavaScript TypeError: columns initialized as object instead of array#18

Merged
jissereitsma merged 1 commit intomasterfrom
bug/javascript-columns-array
Mar 2, 2026
Merged

JavaScript TypeError: columns initialized as object instead of array#18
jissereitsma merged 1 commit intomasterfrom
bug/javascript-columns-array

Conversation

@allrude
Copy link
Contributor

@allrude allrude commented Mar 2, 2026

Problem:

  • columns was initialized as an empty object {} in grid-component-type.phtml
  • columns-selector-component-partial.phtml calls this.columns.forEach()
  • Object.forEach() is not a function, causing TypeError and page hang
  • Backend GridViewModel.getColumns() returns array of Column objects

Solution:

  1. Changed columns: {} to columns: [] in grid-component-type.phtml:20 to match expected array type from backend
  2. Added Array.isArray(this.columns) safety check before forEach() in columns-selector-component-partial.phtml:15 to prevent future errors

Scan Results:

  • Reviewed all .phtml files in the module for similar patterns
  • All other object/array initializations are correct for their usage
  • gridFilters: {} correctly used as object with bracket notation
  • filters: [] correctly initialized as array in filters-component-partial
  • No other array method calls on object-initialized properties found

This fix prevents the grid component from crashing when the columns selector is initialized.

Problem:
- columns was initialized as an empty object {} in grid-component-type.phtml
- columns-selector-component-partial.phtml calls this.columns.forEach()
- Object.forEach() is not a function, causing TypeError and page hang
- Backend GridViewModel.getColumns() returns array of Column objects

Solution:
1. Changed columns: {} to columns: [] in grid-component-type.phtml:20
   to match expected array type from backend
2. Added Array.isArray(this.columns) safety check before forEach()
   in columns-selector-component-partial.phtml:15 to prevent future errors

Scan Results:
- Reviewed all .phtml files in the module for similar patterns
- All other object/array initializations are correct for their usage
- gridFilters: {} correctly used as object with bracket notation
- filters: [] correctly initialized as array in filters-component-partial
- No other array method calls on object-initialized properties found

This fix prevents the grid component from crashing when the columns
selector is initialized.
@allrude allrude added the bug Something isn't working label Mar 2, 2026
@jissereitsma jissereitsma merged commit ff25e6a into master Mar 2, 2026
22 checks passed
@jissereitsma
Copy link
Contributor

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants