diff --git a/web/components/charts/contract/binary.tsx b/web/components/charts/contract/binary.tsx index 7e192767..c9b3bb0b 100644 --- a/web/components/charts/contract/binary.tsx +++ b/web/components/charts/contract/binary.tsx @@ -1,6 +1,7 @@ import { useMemo } from 'react' import { last, sortBy } from 'lodash' import { scaleTime, scaleLinear } from 'd3-scale' +import { curveStepAfter } from 'd3-shape' import { Bet } from 'common/bet' import { getProbability, getInitialProbability } from 'common/calculate' @@ -76,6 +77,7 @@ export const BinaryContractChart = (props: { yScale={yScale} data={data} color="#11b981" + curve={curveStepAfter} onMouseOver={onMouseOver} Tooltip={BinaryChartTooltip} pct diff --git a/web/components/charts/contract/choice.tsx b/web/components/charts/contract/choice.tsx index 65279b70..99e02fa8 100644 --- a/web/components/charts/contract/choice.tsx +++ b/web/components/charts/contract/choice.tsx @@ -1,6 +1,7 @@ import { useMemo } from 'react' import { last, sum, sortBy, groupBy } from 'lodash' import { scaleTime, scaleLinear } from 'd3-scale' +import { curveStepAfter } from 'd3-shape' import { Bet } from 'common/bet' import { Answer } from 'common/answer' @@ -214,6 +215,7 @@ export const ChoiceContractChart = (props: { yScale={yScale} data={data} colors={CATEGORY_COLORS} + curve={curveStepAfter} onMouseOver={onMouseOver} Tooltip={ChoiceTooltip} pct diff --git a/web/components/charts/contract/pseudo-numeric.tsx b/web/components/charts/contract/pseudo-numeric.tsx index e03d4ad9..9e06b368 100644 --- a/web/components/charts/contract/pseudo-numeric.tsx +++ b/web/components/charts/contract/pseudo-numeric.tsx @@ -1,6 +1,7 @@ import { useMemo } from 'react' import { last, sortBy } from 'lodash' import { scaleTime, scaleLog, scaleLinear } from 'd3-scale' +import { curveStepAfter } from 'd3-shape' import { Bet } from 'common/bet' import { DAY_MS } from 'common/util/time' @@ -97,6 +98,7 @@ export const PseudoNumericContractChart = (props: { xScale={xScale} yScale={yScale} data={data} + curve={curveStepAfter} onMouseOver={onMouseOver} Tooltip={PseudoNumericChartTooltip} color={NUMERIC_GRAPH_COLOR} diff --git a/web/components/charts/generic-charts.tsx b/web/components/charts/generic-charts.tsx index 152b264c..cb930484 100644 --- a/web/components/charts/generic-charts.tsx +++ b/web/components/charts/generic-charts.tsx @@ -4,11 +4,11 @@ import { axisBottom, axisLeft } from 'd3-axis' import { D3BrushEvent } from 'd3-brush' import { ScaleTime, ScaleContinuousNumeric } from 'd3-scale' import { + CurveFactory, + SeriesPoint, curveLinear, - curveStepAfter, stack, stackOrderReverse, - SeriesPoint, } from 'd3-shape' import { range } from 'lodash' @@ -52,10 +52,11 @@ export const DistributionChart =
(props: {
color: string
xScale: ScaleContinuousNumeric (props: {
px={px}
py0={py0}
py1={py1}
- curve={curveLinear}
+ curve={curve ?? curveLinear}
/>
)
@@ -113,11 +114,12 @@ export const MultiValueHistoryChart = (props: {
colors: readonly string[]
xScale: ScaleTime (props: {
px={px}
py0={py0}
py1={py1}
- curve={curveStepAfter}
+ curve={curve ?? curveLinear}
fill={colors[i]}
/>
))}
@@ -192,11 +194,12 @@ export const SingleValueHistoryChart = (props: {
color: string
xScale: ScaleTime (props: {
px={px}
py0={py0}
py1={py1}
- curve={curveStepAfter}
+ curve={curve ?? curveLinear}
/>
)
diff --git a/web/components/charts/helpers.tsx b/web/components/charts/helpers.tsx
index 96115dc0..b40ab7db 100644
--- a/web/components/charts/helpers.tsx
+++ b/web/components/charts/helpers.tsx
@@ -10,7 +10,7 @@ import {
import { pointer, select } from 'd3-selection'
import { Axis, AxisScale } from 'd3-axis'
import { brushX, D3BrushEvent } from 'd3-brush'
-import { area, line, curveStepAfter, CurveFactory } from 'd3-shape'
+import { area, line, CurveFactory } from 'd3-shape'
import { nanoid } from 'nanoid'
import dayjs from 'dayjs'
import clsx from 'clsx'
@@ -73,11 +73,11 @@ const LinePathInternal = (
data: P[]
px: number | ((p: P) => number)
py: number | ((p: P) => number)
- curve?: CurveFactory
+ curve: CurveFactory
} & SVGProps (px, py).curve(curve ?? curveStepAfter)
+ const d3Line = line (px, py).curve(curve)
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
return (
px: number | ((p: P) => number)
py0: number | ((p: P) => number)
py1: number | ((p: P) => number)
- curve?: CurveFactory
+ curve: CurveFactory
} & SVGProps (px, py0, py1).curve(curve ?? curveStepAfter)
+ const d3Area = area (px, py0, py1).curve(curve)
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
return (props: {
px: number | ((p: P) => number)
py0: number | ((p: P) => number)
py1: number | ((p: P) => number)
- curve?: CurveFactory
+ curve: CurveFactory
}) => {
const { color, data, px, py0, py1, curve } = props
return (