UNPKG

react-native-chart-kit

Version:

Beautiful React Native charts for dashboards, reports, and data-rich mobile apps.

26 lines (25 loc) 1.06 kB
import { createLinearScale, createPointScale, createTimeScale } from "../../../core/index"; import { getXKey, getXScaleType, unique } from "./utils"; export const buildLineChartXScale = ({ boxes, xValues }) => { const range = [ boxes.plot.x, boxes.plot.x + boxes.plot.width ]; const xScaleType = getXScaleType(xValues); if (xScaleType === "time") { const dates = xValues.filter((value) => value instanceof Date); const scale = createTimeScale({ values: dates, range }); return (value) => (value instanceof Date ? scale.scale(value) : undefined); } if (xScaleType === "linear") { const numbers = xValues.filter((value) => typeof value === "number"); const scale = createLinearScale({ values: numbers, range }); return (value) => typeof value === "number" ? scale.scale(value) : undefined; } const domain = unique(xValues.map(getXKey)); const scale = createPointScale({ domain, range }); return (value) => scale.scale(getXKey(value)); };