Skip to content

Commit 30c2d5f

Browse files
committed
fix: remove jotai
1 parent a63d737 commit 30c2d5f

File tree

13 files changed

+1858
-1949
lines changed

13 files changed

+1858
-1949
lines changed

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,6 @@
134134
"d3-scale": "^3.3.0",
135135
"d3-shape": "^2.1.0",
136136
"d3-time": "^2.1.1",
137-
"jotai": "^1.1.3",
138137
"ts-toolbelt": "^9.6.0"
139138
}
140139
}

src/components/AxisLinear.useMeasure.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@ export default function useMeasure<TDatum>({
3030
showRotated: boolean
3131
setShowRotated: (value: boolean) => void
3232
}) {
33-
const { useAxisDimensionsAtom } = useChartContext<TDatum>()
33+
const { axisDimensionsState } = useChartContext<TDatum>()
3434

35-
const [axisDimensions, setAxisDimensions] = useAxisDimensionsAtom()
35+
const [axisDimensions, setAxisDimensions] = axisDimensionsState
3636

3737
const axisDimension = React.useMemo(() => {
3838
return axisDimensions[axis.position as Position]?.[axis.id!]

src/components/Chart.tsx

Lines changed: 11 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { groups, sort } from 'd3-array'
22
import { stack, stackOffsetNone } from 'd3-shape'
3-
import { atom, useAtom } from 'jotai'
43
import React, { ComponentPropsWithoutRef } from 'react'
54

65
import useGetLatest from '../hooks/useGetLatest'
@@ -229,36 +228,20 @@ function ChartInner<TDatum>({
229228
const svgRef = React.useRef<SVGSVGElement>(null)
230229
const getOptions = useGetLatest(options)
231230

232-
const axisDimensionsAtom = React.useMemo(
233-
() =>
234-
atom<AxisDimensions>({
235-
left: {},
236-
right: {},
237-
top: {},
238-
bottom: {},
239-
}),
240-
[]
241-
)
231+
const axisDimensionsState = React.useState<AxisDimensions>({
232+
left: {},
233+
right: {},
234+
top: {},
235+
bottom: {},
236+
})
242237

243-
const focusedDatumAtom = React.useMemo(
244-
() => atom<Datum<TDatum> | null>(null),
245-
[]
246-
)
238+
const [axisDimensions] = axisDimensionsState
247239

248-
const useAxisDimensionsAtom = React.useCallback(() => {
249-
// eslint-disable-next-line
250-
return useAtom(axisDimensionsAtom)
251-
}, [axisDimensionsAtom])
252-
const useFocusedDatumAtom = React.useCallback(() => {
253-
// eslint-disable-next-line
254-
return useAtom(focusedDatumAtom)
255-
}, [focusedDatumAtom])
240+
const focusedDatumState = React.useState<Datum<TDatum> | null>(null)
241+
const [focusedDatum] = focusedDatumState
256242

257243
// useAtom<Datum<TDatum> | null>(focusedDatumAtom)
258244

259-
const [axisDimensions] = useAxisDimensionsAtom()
260-
const [focusedDatum] = useFocusedDatumAtom()
261-
262245
const gridDimensions = React.useMemo((): GridDimensions => {
263246
// Left
264247
const [axesLeftWidth, axesLeftTop, axesLeftBottom] = (
@@ -593,8 +576,8 @@ function ChartInner<TDatum>({
593576
height,
594577
getSeriesStatusStyle,
595578
getDatumStatusStyle,
596-
useAxisDimensionsAtom,
597-
useFocusedDatumAtom,
579+
axisDimensionsState,
580+
focusedDatumState,
598581
svgRef,
599582
}
600583

src/components/Cursors.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,12 +80,12 @@ function Cursor<TDatum>(props: {
8080
getOptions,
8181
svgRef,
8282
gridDimensions,
83-
useFocusedDatumAtom,
83+
focusedDatumState,
8484
primaryAxis,
8585
secondaryAxes,
8686
} = useChartContext<TDatum>()
8787

88-
const [focusedDatum] = useFocusedDatumAtom()
88+
const [focusedDatum] = focusedDatumState
8989
const latestFocusedDatum = useLatestWhen(focusedDatum, !!focusedDatum)
9090

9191
const secondaryAxis = secondaryAxes.find(

src/components/Tooltip.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,15 +39,15 @@ function defaultTooltip<TDatum>(
3939

4040
export default function Tooltip<TDatum>(): React.ReactPortal | null {
4141
const {
42-
useFocusedDatumAtom,
42+
focusedDatumState,
4343
getOptions,
4444
primaryAxis,
4545
secondaryAxes,
4646
getDatumStatusStyle,
4747
svgRef,
4848
} = useChartContext<TDatum>()
4949

50-
const [focusedDatum] = useFocusedDatumAtom()
50+
const [focusedDatum] = focusedDatumState
5151
const latestFocusedDatum = useLatestWhen(focusedDatum, !!focusedDatum)
5252

5353
const preTooltipOptions = getOptions().tooltip ?? true

src/components/Voronoi.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ import { getPrimary, translate } from '../utils/Utils'
66
import useChartContext from '../utils/chartContext'
77

88
export default function Voronoi<TDatum>() {
9-
const { getOptions, useFocusedDatumAtom } = useChartContext<TDatum>()
9+
const { getOptions, focusedDatumState } = useChartContext<TDatum>()
1010

11-
const [, setFocusedDatum] = useFocusedDatumAtom()
11+
const [, setFocusedDatum] = focusedDatumState
1212

1313
const {
1414
onFocusDatum,

src/hooks/useRect.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import observeRect from '@reach/observe-rect'
22
import React from 'react'
3-
// import observeRect from '../utils/observe-rect'
43

54
import useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect'
65

src/seriesTypes/Area.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,13 @@ export default function AreaComponent<TDatum>({
2626
const {
2727
getSeriesStatusStyle,
2828
getDatumStatusStyle,
29-
useFocusedDatumAtom,
29+
focusedDatumState,
3030
gridDimensions,
3131
} = useChartContext<TDatum>()
3232

3333
const curve = secondaryAxis.curve ?? monotoneX
3434

35-
const [focusedDatum] = useFocusedDatumAtom()
35+
const [focusedDatum] = focusedDatumState
3636

3737
return (
3838
<g

src/seriesTypes/Bar.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ export default function BarComponent<TDatum>({
2424
const {
2525
getSeriesStatusStyle,
2626
getDatumStatusStyle,
27-
useFocusedDatumAtom,
27+
focusedDatumState,
2828
gridDimensions,
2929
} = useChartContext<TDatum>()
3030

31-
const [focusedDatum] = useFocusedDatumAtom()
31+
const [focusedDatum] = focusedDatumState
3232

3333
return (
3434
<g

src/seriesTypes/Line.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,13 @@ export default function Line<TDatum>({
2323
const {
2424
getSeriesStatusStyle,
2525
getDatumStatusStyle,
26-
useFocusedDatumAtom,
26+
focusedDatumState,
2727
gridDimensions,
2828
} = useChartContext<TDatum>()
2929

3030
const curve = secondaryAxis.curve ?? monotoneX
3131

32-
const [focusedDatum] = useFocusedDatumAtom()
32+
const [focusedDatum] = focusedDatumState
3333

3434
return (
3535
<g

src/types.ts

Lines changed: 4 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
import { ScaleBand, ScaleLinear, ScaleTime } from 'd3-scale'
22
import { CurveFactory, stackOffsetNone } from 'd3-shape'
3-
import { SetStateAction } from 'jotai'
43
import React, { CSSProperties, RefObject } from 'react'
54
import * as TSTB from 'ts-toolbelt'
65

76
import { TooltipRendererProps } from './components/TooltipRenderer'
8-
import { SetAtom } from 'jotai/core/atom'
97

108
export type ChartOptions<TDatum> = {
119
data: UserSerie<TDatum>[]
@@ -88,13 +86,13 @@ export type ChartContextValue<TDatum> = {
8886
datum: Datum<TDatum>,
8987
focusedDatum: Datum<TDatum> | null
9088
) => DatumStyles
91-
useAxisDimensionsAtom: () => [
89+
axisDimensionsState: [
9290
AxisDimensions,
93-
SetAtom<SetStateAction<AxisDimensions>>
91+
React.Dispatch<React.SetStateAction<AxisDimensions>>
9492
]
95-
useFocusedDatumAtom: () => [
93+
focusedDatumState: [
9694
Datum<TDatum> | null,
97-
SetAtom<SetStateAction<Datum<TDatum> | null>>
95+
React.Dispatch<React.SetStateAction<Datum<TDatum> | null>>
9896
]
9997
}
10098

@@ -228,12 +226,6 @@ export type AxisOptionsBase = {
228226
curve?: CurveFactory
229227
invert?: boolean
230228
position: Position
231-
// tickCount?: number
232-
// minTickCount?: number
233-
// maxTickCount?: number
234-
// tickValues?: unknown[]
235-
// tickSizeInner?: number
236-
// tickSizeOuter?: number
237229
minTickPaddingForRotation?: number
238230
tickLabelRotationDeg?: number
239231
innerBandPadding?: number
@@ -242,8 +234,6 @@ export type AxisOptionsBase = {
242234
maxBandSize?: number
243235
minDomainLength?: number
244236
showGrid?: boolean
245-
// showTicks?: boolean
246-
// filterTicks?: <T extends string>(ticks: T[]) => T[]
247237
show?: boolean
248238
stacked?: boolean
249239
stackOffset?: typeof stackOffsetNone
@@ -328,17 +318,10 @@ export type AxisOptions<TDatum> =
328318

329319
export type ResolvedAxisOptions<TAxisOptions> = TSTB.Object.Required<
330320
TAxisOptions & {},
331-
// | 'tickCount'
332-
// | 'minTickCount'
333-
// | 'maxTickCount'
334-
// | 'tickSizeInner'
335-
// | 'tickSizeOuter'
336321
| 'minTickPaddingForRotation'
337322
| 'tickLabelRotationDeg'
338323
| 'innerBandPadding'
339324
| 'outerBandPadding'
340-
// | 'showTicks'
341-
// | 'filterTicks'
342325
| 'show'
343326
| 'stacked'
344327
>
@@ -349,24 +332,6 @@ export type AxisBase<TDatum> = {
349332
_?: TDatum
350333
isVertical: boolean
351334
range: [number, number]
352-
// isPrimary?: boolean
353-
// primaryAxisId?: string
354-
// isTimeType: boolean
355-
// uniquePrimariesSet: Set<unknown>
356-
// barSize: number
357-
// cursorSize: number
358-
// stepSize: number
359-
// seriesBandScale?: ScaleBand<string>
360-
// seriesBarSize: number
361-
// domain: [unknown, unknown] | unknown[]
362-
// directionMultiplier: -1 | 1
363-
// transform: typeof translateX | typeof translateY
364-
// ticks: unknown[]
365-
// format: (value: unknown, index: number) => string
366-
// tickSpacing: number
367-
// tickOffset: number
368-
// barOffset: number
369-
// gridOffset: number
370335
}
371336

372337
export type AxisTime<TDatum> = Omit<

0 commit comments

Comments
 (0)