From b02722ee272fbf9f5410d901ae99b222a6e099cb Mon Sep 17 00:00:00 2001 From: Alexandre Fauquette <45398769+alexfauquette@users.noreply.github.com> Date: Thu, 30 Jan 2025 18:57:47 +0100 Subject: [PATCH] [charts] Fix zoom panning (#16407) --- .../useChartProZoom/creatZoomLookup.ts | 22 +++++++++---------- .../useChartProZoom.selectors.ts | 4 ++-- .../useChartProZoom/useChartProZoom.ts | 4 ++-- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/packages/x-charts-pro/src/internals/plugins/useChartProZoom/creatZoomLookup.ts b/packages/x-charts-pro/src/internals/plugins/useChartProZoom/creatZoomLookup.ts index b1d6acd79eb21..18030d64b7229 100644 --- a/packages/x-charts-pro/src/internals/plugins/useChartProZoom/creatZoomLookup.ts +++ b/packages/x-charts-pro/src/internals/plugins/useChartProZoom/creatZoomLookup.ts @@ -2,14 +2,14 @@ import { AxisId, DefaultizedZoomOptions } from '@mui/x-charts/internals'; import { AxisConfig, ChartsXAxisProps, ChartsYAxisProps, ScaleName } from '@mui/x-charts/models'; import { defaultizeZoom } from './defaultizeZoom'; -export const creatZoomLookup = ( - axes: AxisConfig[], -) => - axes.reduce>((acc, v) => { - const { zoom, id: axisId } = v; - const defaultizedZoom = defaultizeZoom(zoom, axisId, 'x'); - if (defaultizedZoom) { - acc[axisId] = defaultizedZoom; - } - return acc; - }, {}); +export const creatZoomLookup = + (axisDirection: 'x' | 'y') => + (axes: AxisConfig[]) => + axes.reduce>((acc, v) => { + const { zoom, id: axisId } = v; + const defaultizedZoom = defaultizeZoom(zoom, axisId, axisDirection); + if (defaultizedZoom) { + acc[axisId] = defaultizedZoom; + } + return acc; + }, {}); diff --git a/packages/x-charts-pro/src/internals/plugins/useChartProZoom/useChartProZoom.selectors.ts b/packages/x-charts-pro/src/internals/plugins/useChartProZoom/useChartProZoom.selectors.ts index 63114974554fe..a12c8134cba3f 100644 --- a/packages/x-charts-pro/src/internals/plugins/useChartProZoom/useChartProZoom.selectors.ts +++ b/packages/x-charts-pro/src/internals/plugins/useChartProZoom/useChartProZoom.selectors.ts @@ -10,9 +10,9 @@ import { creatZoomLookup } from './creatZoomLookup'; export const selectorChartZoomState: ChartRootSelector = (state) => state.zoom; -const selectorChartXZoomOptionsLookup = createSelector(selectorChartRawXAxis, creatZoomLookup); +const selectorChartXZoomOptionsLookup = createSelector(selectorChartRawXAxis, creatZoomLookup('x')); -const selectorChartYZoomOptionsLookup = createSelector(selectorChartRawYAxis, creatZoomLookup); +const selectorChartYZoomOptionsLookup = createSelector(selectorChartRawYAxis, creatZoomLookup('y')); export const selectorChartZoomOptionsLookup = createSelector( [selectorChartXZoomOptionsLookup, selectorChartYZoomOptionsLookup], diff --git a/packages/x-charts-pro/src/internals/plugins/useChartProZoom/useChartProZoom.ts b/packages/x-charts-pro/src/internals/plugins/useChartProZoom/useChartProZoom.ts index f5d798ef8cbe4..2181339e01054 100644 --- a/packages/x-charts-pro/src/internals/plugins/useChartProZoom/useChartProZoom.ts +++ b/packages/x-charts-pro/src/internals/plugins/useChartProZoom/useChartProZoom.ts @@ -373,8 +373,8 @@ useChartProZoom.params = { useChartProZoom.getDefaultizedParams = ({ params }) => { const optionsLookup = { - ...creatZoomLookup(params.defaultizedXAxis), - ...creatZoomLookup(params.defaultizedYAxis), + ...creatZoomLookup('x')(params.defaultizedXAxis), + ...creatZoomLookup('y')(params.defaultizedYAxis), }; return {