From f0369fda6e3647dd59a55e23ab17cf6b15d954e8 Mon Sep 17 00:00:00 2001 From: sowo Date: Thu, 5 Aug 2021 09:24:54 +0200 Subject: [PATCH] Fix issue with large timestamp arrays (#35) * Fix issue with large timestamp arrays Math.max and Math.min produce "Maximum call stack size exceeded" errors when used with large arrays (see: https://stackoverflow.com/questions/18308700/chrome-how-to-solve-maximum-call-stack-size-exceeded-errors-on-math-max-apply) * fix issue when viewport.zoom < 0 * Update packages/superset-ui-legacy-preset-chart-deckgl/src/utils/time.js Sure. Style changed Co-authored-by: Ville Brofeldt <33317356+villebro@users.noreply.github.com> Co-authored-by: Ville Brofeldt <33317356+villebro@users.noreply.github.com> --- .../src/CategoricalDeckGLContainer.jsx | 3 +++ .../superset-ui-legacy-preset-chart-deckgl/src/utils/time.js | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/superset-frontend/temporary_superset_ui/superset-ui-plugins-deckgl/packages/superset-ui-legacy-preset-chart-deckgl/src/CategoricalDeckGLContainer.jsx b/superset-frontend/temporary_superset_ui/superset-ui-plugins-deckgl/packages/superset-ui-legacy-preset-chart-deckgl/src/CategoricalDeckGLContainer.jsx index 2adc9ecc7a..fef7a1cdc0 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui-plugins-deckgl/packages/superset-ui-legacy-preset-chart-deckgl/src/CategoricalDeckGLContainer.jsx +++ b/superset-frontend/temporary_superset_ui/superset-ui-plugins-deckgl/packages/superset-ui-legacy-preset-chart-deckgl/src/CategoricalDeckGLContainer.jsx @@ -130,6 +130,9 @@ export default class CategoricalDeckGLContainer extends React.PureComponent { points: props.getPoints(features), }); } + if (viewport.zoom < 0) { + viewport.zoom = 0; + } return { start, diff --git a/superset-frontend/temporary_superset_ui/superset-ui-plugins-deckgl/packages/superset-ui-legacy-preset-chart-deckgl/src/utils/time.js b/superset-frontend/temporary_superset_ui/superset-ui-plugins-deckgl/packages/superset-ui-legacy-preset-chart-deckgl/src/utils/time.js index 41bf7c166a..923a673dcd 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui-plugins-deckgl/packages/superset-ui-legacy-preset-chart-deckgl/src/utils/time.js +++ b/superset-frontend/temporary_superset_ui/superset-ui-plugins-deckgl/packages/superset-ui-legacy-preset-chart-deckgl/src/utils/time.js @@ -77,8 +77,8 @@ function getStepSeconds(step, start) { } export function getPlaySliderParams(timestamps, timeGrain) { - const minTimestamp = moment(Math.min(...timestamps)); - const maxTimestamp = moment(Math.max(...timestamps)); + const minTimestamp = moment(Number(timestamps.reduce((a,b) => a < b ? a : b))); + const maxTimestamp = moment(Number(timestamps.reduce((a,b) => a > b ? a : b))); let step; let reference;