From 363ee7356d1470153aa10c87a80625c10662593d Mon Sep 17 00:00:00 2001 From: Arthur Jamet Date: Sat, 28 Oct 2023 08:04:23 +0200 Subject: [PATCH] Front: Isolate Metronone Switch for reactive state --- front/components/Metronome.tsx | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/front/components/Metronome.tsx b/front/components/Metronome.tsx index dd869cc..570a5b5 100644 --- a/front/components/Metronome.tsx +++ b/front/components/Metronome.tsx @@ -1,8 +1,21 @@ /* eslint-disable @typescript-eslint/no-var-requires */ -import { useEffect, useRef } from 'react'; +import { useEffect, useRef, useState } from 'react'; import { Slider, Switch, Text, View } from 'native-base'; import { Audio } from 'expo-av'; +const MetronomeToggle = (props: { enabled: boolean, onToggle: (stateAfterToggle: boolean) => void }) => { + const [isEnabled, setEnabled] = useState(false); + + useEffect(() => { + setEnabled(props.enabled) + }, [props.enabled]) + return { + console.log(isEnabled); + props.onToggle(!isEnabled); + setEnabled(!isEnabled); + }} /> +} + export const Metronome = ({ paused = false, bpm }: { paused?: boolean; bpm: number }) => { const audio = useRef(null); const enabled = useRef(false); @@ -37,7 +50,7 @@ export const Metronome = ({ paused = false, bpm }: { paused?: boolean; bpm: numb Metronome Settings Enabled: - (enabled.current = !enabled.current)} /> + (enabled.current = e)} /> Volume: