|
1 | 1 | import { groups, sort } from 'd3-array' |
2 | 2 | import { stack, stackOffsetNone } from 'd3-shape' |
3 | | -import { atom, useAtom } from 'jotai' |
4 | 3 | import React, { ComponentPropsWithoutRef } from 'react' |
5 | 4 |
|
6 | 5 | import useGetLatest from '../hooks/useGetLatest' |
@@ -229,36 +228,20 @@ function ChartInner<TDatum>({ |
229 | 228 | const svgRef = React.useRef<SVGSVGElement>(null) |
230 | 229 | const getOptions = useGetLatest(options) |
231 | 230 |
|
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 | + }) |
242 | 237 |
|
243 | | - const focusedDatumAtom = React.useMemo( |
244 | | - () => atom<Datum<TDatum> | null>(null), |
245 | | - [] |
246 | | - ) |
| 238 | + const [axisDimensions] = axisDimensionsState |
247 | 239 |
|
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 |
256 | 242 |
|
257 | 243 | // useAtom<Datum<TDatum> | null>(focusedDatumAtom) |
258 | 244 |
|
259 | | - const [axisDimensions] = useAxisDimensionsAtom() |
260 | | - const [focusedDatum] = useFocusedDatumAtom() |
261 | | - |
262 | 245 | const gridDimensions = React.useMemo((): GridDimensions => { |
263 | 246 | // Left |
264 | 247 | const [axesLeftWidth, axesLeftTop, axesLeftBottom] = ( |
@@ -593,8 +576,8 @@ function ChartInner<TDatum>({ |
593 | 576 | height, |
594 | 577 | getSeriesStatusStyle, |
595 | 578 | getDatumStatusStyle, |
596 | | - useAxisDimensionsAtom, |
597 | | - useFocusedDatumAtom, |
| 579 | + axisDimensionsState, |
| 580 | + focusedDatumState, |
598 | 581 | svgRef, |
599 | 582 | } |
600 | 583 |
|
|
0 commit comments