@mui/x-charts
Version:
The community edition of MUI X Charts components.
119 lines (115 loc) • 3.26 kB
JavaScript
'use client';
import { selectorChartXAxis, selectorChartYAxis } from "../internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.js";
import { selectorChartRadiusAxis, selectorChartRotationAxis } from "../internals/plugins/featurePlugins/useChartPolarAxis/index.js";
import { useSelector } from "../internals/store/useSelector.js";
import { useStore } from "../internals/store/useStore.js";
/**
* Get all the x-axes.
*
* - `xAxis` is an object with the shape `{ [axisId]: axis }`.
* - `xAxisIds` is an array of axis IDs.
*
* If access to a specific X axis is needed, use the `useXAxis` hook instead.
*
* @returns `{ xAxis, xAxisIds }` - The x-axes and their IDs.
*/
export function useXAxes() {
const store = useStore();
const {
axis: xAxis,
axisIds: xAxisIds
} = useSelector(store, selectorChartXAxis);
return {
xAxis,
xAxisIds
};
}
/**
* Get all the y-axes.
*
* - `yAxis` is an object with the shape `{ [axisId]: axis }`.
* - `yAxisIds` is an array of axis IDs.
*
* If access to a specific Y axis is needed, use the `useYAxis` hook instead.
*
* @returns `{ yAxis, yAxisIds }` - The y-axes and their IDs.
*/
export function useYAxes() {
const store = useStore();
const {
axis: yAxis,
axisIds: yAxisIds
} = useSelector(store, selectorChartYAxis);
return {
yAxis,
yAxisIds
};
}
/**
* Get the X axis.
* @param {AxisId | undefined} axisId - If provided returns the x axis with axisId, else returns the values for the default x axis.
* @returns The X axis.
*/
export function useXAxis(axisId) {
const store = useStore();
const {
axis: xAxis,
axisIds: xAxisIds
} = useSelector(store, selectorChartXAxis);
const id = axisId ?? xAxisIds[0];
return xAxis[id];
}
/**
* Get the Y axis.
* @param {AxisId | undefined} axisId - If provided returns the y axis with axisId, else returns the values for the default y axis.
* @returns The Y axis.
*/
export function useYAxis(axisId) {
const store = useStore();
const {
axis: yAxis,
axisIds: yAxisIds
} = useSelector(store, selectorChartYAxis);
const id = axisId ?? yAxisIds[0];
return yAxis[id];
}
export function useRotationAxes() {
const store = useStore();
const {
axis: rotationAxis,
axisIds: rotationAxisIds
} = useSelector(store, selectorChartRotationAxis);
return {
rotationAxis,
rotationAxisIds
};
}
export function useRadiusAxes() {
const store = useStore();
const {
axis: radiusAxis,
axisIds: radiusAxisIds
} = useSelector(store, selectorChartRadiusAxis);
return {
radiusAxis,
radiusAxisIds
};
}
export function useRotationAxis(identifier) {
const store = useStore();
const {
axis: rotationAxis,
axisIds: rotationAxisIds
} = useSelector(store, selectorChartRotationAxis);
const id = typeof identifier === 'string' ? identifier : rotationAxisIds[identifier ?? 0];
return rotationAxis[id];
}
export function useRadiusAxis(identifier) {
const store = useStore();
const {
axis: radiusAxis,
axisIds: radiusAxisIds
} = useSelector(store, selectorChartRadiusAxis);
const id = typeof identifier === 'string' ? identifier : radiusAxisIds[identifier ?? 0];
return radiusAxis[id];
}