feat: clic Animer démarre la lecture automatiquement en vitesse ×1
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/push/woodpecker Pipeline was successful
- activate() appelle maintenant setSpeed(1) + setPlaying(true) en plus de setActive(true) - L'effet de reset ne stoppe playing que lors d'une désactivation (active=false), pas lors d'une activation, pour ne pas annuler le setPlaying(true) ci-dessus Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -64,10 +64,12 @@ export function useAnimation(transactions: Transaction[], periodDays: number) {
|
|||||||
|
|
||||||
const frames = useMemo(() => buildFrames(periodDays), [periodDays]);
|
const frames = useMemo(() => buildFrames(periodDays), [periodDays]);
|
||||||
|
|
||||||
// Reset cursor and playback when period or activation changes
|
// Reset cursor when period or activation changes.
|
||||||
|
// Stop playback only on deactivation — not on activation, so activate() can
|
||||||
|
// start playing immediately without being overridden by this effect.
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setCurrentIndex(0);
|
setCurrentIndex(0);
|
||||||
setPlaying(false);
|
if (!active) setPlaying(false);
|
||||||
}, [periodDays, active]);
|
}, [periodDays, active]);
|
||||||
|
|
||||||
// Auto-advance: one step every (2000 / speed) ms
|
// Auto-advance: one step every (2000 / speed) ms
|
||||||
@@ -95,7 +97,7 @@ export function useAnimation(transactions: Transaction[], periodDays: number) {
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
active,
|
active,
|
||||||
activate: () => setActive(true),
|
activate: () => { setActive(true); setSpeed(1); setPlaying(true); },
|
||||||
deactivate: () => { setActive(false); },
|
deactivate: () => { setActive(false); },
|
||||||
playing,
|
playing,
|
||||||
play: () => setPlaying(true),
|
play: () => setPlaying(true),
|
||||||
|
|||||||
Reference in New Issue
Block a user