Skip to content

Commit a1e843e

Browse files
authored
Merge branch 'master' into export-use-funnel-series
2 parents c6153fb + abcebdb commit a1e843e

File tree

5 files changed

+138
-119
lines changed

5 files changed

+138
-119
lines changed

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@
9494
"@mui/monorepo": "github:mui/material-ui#adb0a76b09080d02f899789266336b297850d86b",
9595
"@mui/utils": "^7.0.2",
9696
"@next/eslint-plugin-next": "15.3.2",
97-
"@octokit/plugin-retry": "^7.2.1",
97+
"@octokit/plugin-retry": "^8.0.1",
9898
"@octokit/rest": "^21.1.1",
9999
"@playwright/test": "^1.52.0",
100100
"@types/babel__core": "^7.20.5",
@@ -104,7 +104,7 @@
104104
"@types/karma": "^6.3.9",
105105
"@types/lodash": "^4.17.16",
106106
"@types/mocha": "^10.0.10",
107-
"@types/node": "^22.15.18",
107+
"@types/node": "^22.15.21",
108108
"@types/react": "^19.0.12",
109109
"@types/react-dom": "^19.0.4",
110110
"@types/requestidlecallback": "^0.3.7",
@@ -173,7 +173,7 @@
173173
"lodash": "^4.17.21",
174174
"magic-string": "^0.30.17",
175175
"markdownlint-cli2": "^0.18.1",
176-
"mocha": "^11.3.0",
176+
"mocha": "^11.5.0",
177177
"moment": "^2.30.1",
178178
"moment-timezone": "^0.5.48",
179179
"null-loader": "^4.0.1",

packages/x-charts-pro/src/ChartZoomSlider/internals/ChartAxisZoomSlider.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ export function ChartAxisZoomSlider({ axisDirection, axisId }: ChartZoomSliderPr
3232
const store = useStore();
3333
const drawingArea = useDrawingArea();
3434
const zoomData = useSelector(store, selectorChartAxisZoomData, axisId);
35+
const [showTooltip, setShowTooltip] = React.useState(false);
3536
const { xAxis } = useXAxes();
3637
const { yAxis } = useYAxes();
3738

@@ -92,13 +93,18 @@ export function ChartAxisZoomSlider({ axisDirection, axisId }: ChartZoomSliderPr
9293
axisId={axisId}
9394
axisDirection={axisDirection}
9495
reverse={reverse}
96+
onSelectStart={() => setShowTooltip(true)}
97+
onSelectEnd={() => setShowTooltip(false)}
9598
/>
9699
<ChartAxisZoomSliderActiveTrack
97100
zoomData={zoomData}
98101
axisId={axisId}
99102
axisPosition={axisPosition}
100103
axisDirection={axisDirection}
101104
reverse={reverse}
105+
showTooltip={showTooltip}
106+
onPointerEnter={() => setShowTooltip(true)}
107+
onPointerLeave={() => setShowTooltip(false)}
102108
/>
103109
</g>
104110
);

packages/x-charts-pro/src/ChartZoomSlider/internals/ChartAxisZoomSliderActiveTrack.tsx

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -37,28 +37,35 @@ const ZoomSliderActiveTrackRect = styled('rect')(({ theme }) => ({
3737
const formatter = Intl.NumberFormat(undefined, { maximumFractionDigits: 0 });
3838
const zoomValueFormatter = (value: number) => formatter.format(value);
3939

40+
export interface ChartAxisZoomSliderActiveTrackProps {
41+
axisId: AxisId;
42+
axisDirection: 'x' | 'y';
43+
axisPosition: 'top' | 'bottom' | 'left' | 'right';
44+
zoomData: ZoomData;
45+
reverse?: boolean;
46+
valueFormatter?: (value: number) => string;
47+
showTooltip: boolean;
48+
onPointerEnter?: () => void;
49+
onPointerLeave?: () => void;
50+
}
51+
4052
export function ChartAxisZoomSliderActiveTrack({
4153
axisId,
4254
axisDirection,
4355
axisPosition,
4456
zoomData,
4557
reverse,
4658
valueFormatter = zoomValueFormatter,
47-
}: {
48-
axisId: AxisId;
49-
axisDirection: 'x' | 'y';
50-
axisPosition: 'top' | 'bottom' | 'left' | 'right';
51-
zoomData: ZoomData;
52-
reverse: boolean;
53-
valueFormatter?: (value: number) => string;
54-
}) {
59+
showTooltip,
60+
onPointerEnter,
61+
onPointerLeave,
62+
}: ChartAxisZoomSliderActiveTrackProps) {
5563
const { instance, svgRef } = useChartContext<[UseChartProZoomSignature]>();
5664
const store = useStore<[UseChartProZoomSignature]>();
5765
const drawingArea = useDrawingArea();
5866
const activePreviewRectRef = React.useRef<SVGRectElement>(null);
5967
const [startThumbEl, setStartThumbEl] = React.useState<SVGRectElement | null>(null);
6068
const [endThumbEl, setEndThumbEl] = React.useState<SVGRectElement | null>(null);
61-
const [showTooltip, setShowTooltip] = React.useState<null | 'start' | 'end' | 'both'>(null);
6269

6370
const previewThumbWidth =
6471
axisDirection === 'x' ? ZOOM_SLIDER_THUMB_WIDTH : ZOOM_SLIDER_THUMB_HEIGHT;
@@ -102,7 +109,6 @@ export function ChartAxisZoomSliderActiveTrack({
102109
const onPointerUp = () => {
103110
activePreviewRect.removeEventListener('pointermove', onPointerMove);
104111
document.removeEventListener('pointerup', onPointerUp);
105-
setShowTooltip(null);
106112
};
107113

108114
const onPointerDown = (event: PointerEvent) => {
@@ -128,7 +134,6 @@ export function ChartAxisZoomSliderActiveTrack({
128134
pointerZoomMin = pointerDownZoom - axisZoomData.start;
129135
pointerZoomMax = 100 - (axisZoomData.end - pointerDownZoom);
130136

131-
setShowTooltip('both');
132137
document.addEventListener('pointerup', onPointerUp);
133138
activePreviewRect.addEventListener('pointermove', onPointerMove);
134139
};
@@ -272,8 +277,8 @@ export function ChartAxisZoomSliderActiveTrack({
272277
y={previewY + (axisDirection === 'x' ? previewOffset : 0)}
273278
width={previewWidth}
274279
height={previewHeight}
275-
onPointerEnter={() => setShowTooltip('both')}
276-
onPointerLeave={() => setShowTooltip(null)}
280+
onPointerEnter={onPointerEnter}
281+
onPointerLeave={onPointerLeave}
277282
/>
278283
<ChartAxisZoomSliderThumb
279284
ref={setStartThumbEl}
@@ -283,8 +288,8 @@ export function ChartAxisZoomSliderActiveTrack({
283288
height={previewThumbHeight}
284289
orientation={axisDirection === 'x' ? 'horizontal' : 'vertical'}
285290
onMove={onStartThumbMove}
286-
onPointerEnter={() => setShowTooltip('start')}
287-
onPointerLeave={() => setShowTooltip(null)}
291+
onPointerEnter={onPointerEnter}
292+
onPointerLeave={onPointerLeave}
288293
placement="start"
289294
/>
290295
<ChartAxisZoomSliderThumb
@@ -295,20 +300,20 @@ export function ChartAxisZoomSliderActiveTrack({
295300
height={previewThumbHeight}
296301
orientation={axisDirection === 'x' ? 'horizontal' : 'vertical'}
297302
onMove={onEndThumbMove}
298-
onPointerEnter={() => setShowTooltip('end')}
299-
onPointerLeave={() => setShowTooltip(null)}
303+
onPointerEnter={onPointerEnter}
304+
onPointerLeave={onPointerLeave}
300305
placement="end"
301306
/>
302307
<ChartsTooltipZoomSliderValue
303308
anchorEl={startThumbEl}
304-
open={showTooltip === 'start' || showTooltip === 'both'}
309+
open={showTooltip}
305310
placement={axisPosition}
306311
>
307312
{valueFormatter(zoomData.start)}
308313
</ChartsTooltipZoomSliderValue>
309314
<ChartsTooltipZoomSliderValue
310315
anchorEl={endThumbEl}
311-
open={showTooltip === 'end' || showTooltip === 'both'}
316+
open={showTooltip}
312317
placement={axisPosition}
313318
>
314319
{valueFormatter(zoomData.end)}

packages/x-charts-pro/src/ChartZoomSlider/internals/ChartAxisZoomSliderTrack.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,16 @@ interface ChartAxisZoomSliderTrackProps extends React.ComponentProps<'rect'> {
4141
axisId: AxisId;
4242
axisDirection: 'x' | 'y';
4343
reverse: boolean;
44+
onSelectStart?: () => void;
45+
onSelectEnd?: () => void;
4446
}
4547

4648
export function ChartAxisZoomSliderTrack({
4749
axisId,
4850
axisDirection,
4951
reverse,
52+
onSelectStart,
53+
onSelectEnd,
5054
...other
5155
}: ChartAxisZoomSliderTrackProps) {
5256
const ref = React.useRef<SVGRectElement>(null);
@@ -133,6 +137,7 @@ export function ChartAxisZoomSliderTrack({
133137
rect.removeEventListener('pointermove', onPointerMove);
134138
document.removeEventListener('pointerup', onPointerUp);
135139
setIsSelecting(false);
140+
onSelectEnd?.();
136141

137142
if (pointerMoved) {
138143
return;
@@ -163,6 +168,7 @@ export function ChartAxisZoomSliderTrack({
163168
document.addEventListener('pointerup', onPointerUp);
164169
rect.addEventListener('pointermove', onPointerMove);
165170

171+
onSelectStart?.();
166172
setIsSelecting(true);
167173
instance.setAxisZoomData(axisId, (prev) => ({
168174
...prev,

0 commit comments

Comments
 (0)