superset/superset-frontend/temporary_superset_ui
Jianchao Yang 51f7667e83 fix(legacy-table): avoid React DOM (#392)
* fix(legacy-table): avoid React DOM

`jquery.datatables` will manipulate DOMs, sometimes remove them. In case
of component being reloaded with updated props, React will not be able
to find those removed nodes, causing a `cannot removeChild` error.

Because of the the way to assign row keys, if table shape changes (add
or remove columns), React may also have difficulty match the cached
nodes via keys.

In general it's a bad idea to directly manipulate React rendered DOM
nodes, so we better just let `jquery.datatables` handle everything.

In the future, once we removed `jquery.datatables`, a pure React
component will not have such issues.

* fix(legacy-table): handle the case when percentMetrics is null

* fix(legacy-table): linting errors

* refactor: use nimbus build

* test(legacy-table): add React component tests

* test(legacy-table): more sophisticated cases

* fix: address PR #392 comments

* chore(legacy-table): clean up tests case setups

Not seeing the console.warn errors anymore. So cleaning it up.

Previously it was from `<SuperChart />` component, but since we have
updated the test case to not use <SuperChart>, we are good now.

* fix(legacy-table): misleading comment
2021-11-26 11:46:01 +08:00
..
superset-ui fix(legacy-table): avoid React DOM (#392) 2021-11-26 11:46:01 +08:00