import {useFocusEffect} from '@react-navigation/native' import React, {useCallback, useMemo, useState} from 'react' import {Dimensions, NativeModules, View} from 'react-native' import {Button, Text, useTheme} from 'react-native-paper' import {ProgressCircle} from 'react-native-svg-charts' import AppFab from './AppFab' import {MARGIN, PADDING} from './constants' import {settingsRepo} from './db' import DrawerHeader from './DrawerHeader' import Settings from './settings' import useTimer from './use-timer' export interface TickEvent { minutes: string seconds: string } export default function TimerPage() { const {minutes, seconds} = useTimer() const [settings, setSettings] = useState() const {colors} = useTheme() useFocusEffect( useCallback(() => { settingsRepo.findOne({where: {}}).then(setSettings) }, []), ) const stop = () => { NativeModules.AlarmModule.stop() } const add = async () => { console.log(`${TimerPage.name}.add:`, settings) NativeModules.AlarmModule.add() } const progress = useMemo(() => { return (Number(minutes) * 60 + Number(seconds)) / 210 }, [minutes, seconds]) const left = useMemo(() => { return Dimensions.get('screen').width * 0.5 - 60 }, []) return ( <> {minutes}:{seconds} ) }