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} ) }