Skip to content

fix: Console error when opening context menu on tree table#2047

Merged
AkshatJawne merged 5 commits intodeephaven:mainfrom
AkshatJawne:2029_tree_table_context_menu_fix
May 31, 2024
Merged

fix: Console error when opening context menu on tree table#2047
AkshatJawne merged 5 commits intodeephaven:mainfrom
AkshatJawne:2029_tree_table_context_menu_fix

Conversation

@AkshatJawne
Copy link
Copy Markdown
Contributor

Resolves #2029

Changes Implemented:

  • Added optional chaining when call formatValue function, to ensure that it is only called when it is defined

I had also considered the approach below, which achieved the same result of removing the exception in the console. Ultimately opted to not use this logic, under the assumption that we are okay with the resultRow being undefined.

However, if we want resultRow to be defined, this approach ensures that it is, via a default function that performs no formatting.

// Approach #2: Default function that performs no formatting if formatValue is undefined
const formatVal =
formatValue ?? ((value: unknown, column: DhType.Column) => value);
resultRow.push(
formatVal(viewportRow.data.get(c)?.value, this.columns[c])
);

@AkshatJawne AkshatJawne self-assigned this May 30, 2024
@codecov
Copy link
Copy Markdown

codecov Bot commented May 30, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 46.36%. Comparing base (8e6b6da) to head (3cec1b3).

Current head 3cec1b3 differs from pull request most recent head 310a928

Please upload reports for the commit 310a928 to get more accurate results.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #2047   +/-   ##
=======================================
  Coverage   46.36%   46.36%           
=======================================
  Files         673      673           
  Lines       38780    38779    -1     
  Branches     9826     9826           
=======================================
  Hits        17981    17981           
+ Misses      20748    20747    -1     
  Partials       51       51           
Flag Coverage Δ
unit 46.36% <ø> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

assertNotNull(formatValue);
resultRow.push(
formatValue(viewportRow.data.get(c)?.value, this.columns[c])
formatValue?.(viewportRow.data.get(c)?.value, this.columns[c])
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems if formatValue is not defined, there is no point in entering the for loop at all. I would check before the loop.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch, just tested and it seems like this also works, but definitely more efficient (since we are not going into the loop if its not defined anymore). Pushed change

@AkshatJawne AkshatJawne requested a review from bmingles May 31, 2024 14:20
Comment thread packages/iris-grid/src/IrisGridTreeTableModel.ts Outdated
@AkshatJawne AkshatJawne requested a review from bmingles May 31, 2024 14:53
Copy link
Copy Markdown
Contributor

@bmingles bmingles left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code changes look good. I confirmed the error no longer shows up when opening the context menu on tree table.

@AkshatJawne AkshatJawne merged commit 77bea7d into deephaven:main May 31, 2024
@github-actions github-actions Bot locked and limited conversation to collaborators May 31, 2024
c += 1
) {
resultRow.push(
formatValue(viewportRow.data.get(c)?.value, this.columns[c])
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We still want to populate the resultRow array with unformatted values if formatValue is not defined.
With this change, the resultRow ends up empty.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Opening context menu on tree tables throws an exception in the browser console

3 participants