fix: prevent state update pitfall causing data/UI desync
This commit is contained in:
parent
d23c4d0986
commit
e50db12841
@ -1,4 +1,4 @@
|
||||
import React, { useRef } from "react";
|
||||
import React, { useEffect, useRef, useState } from "react";
|
||||
import { useOklchCanvas } from "./useOklchCanvas";
|
||||
import { Handle } from "./Handle";
|
||||
import type { I18nProvider, LchChannel } from "./Picker";
|
||||
@ -14,9 +14,13 @@ interface SliderProps {
|
||||
}
|
||||
|
||||
export const Slider = ({ useP3, channel, color, onChange, i18nProvider }: SliderProps) => {
|
||||
const [value, setValue] = React.useState(color[channel]!.toFixed(precision[channel]));
|
||||
const [value, setValue] = useState(color[channel]!.toFixed(precision[channel]));
|
||||
const containerRef = useRef<HTMLDivElement>(null);
|
||||
|
||||
useEffect(() => {
|
||||
setValue(color[channel]!.toFixed(precision[channel]));
|
||||
}, [color.l, color.c, color.h]);
|
||||
|
||||
const canvasRef = useRef<null | HTMLCanvasElement>(null);
|
||||
useOklchCanvas({ channel: channel, max: maxValue[channel], canvasRef: canvasRef, color, useP3 });
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user