From 196f3c6cb444339e23dee5bfb08754ae485e49bf Mon Sep 17 00:00:00 2001 From: Arduinum Date: Thu, 14 May 2026 23:38:48 +0300 Subject: [PATCH] feat: updated timer view --- client/src/views/Timer/Timer.html | 10 +++++----- client/src/views/Timer/Timer.ts | 19 ++++++++++++------- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/client/src/views/Timer/Timer.html b/client/src/views/Timer/Timer.html index d9719cb..a7b3404 100644 --- a/client/src/views/Timer/Timer.html +++ b/client/src/views/Timer/Timer.html @@ -8,8 +8,8 @@
- {{ timer.title }} - Помидор + {{ countdown?.timerNow.value?.title }} + {{ countdown?.timerNow.value?.typeTimer }}
@@ -18,7 +18,7 @@ -
+
@@ -42,7 +42,7 @@ class="btn-timer btn-timer-start" id="btn-start" - v-show="state === 'idle' || state === 'paused'" + v-show="state === 'idle' && !countdown?.isFinished.value || state === 'paused'" @click="() => { setState('running'); countdown?.start(); }" > @@ -54,7 +54,7 @@ class="btn-timer btn-timer-pause" id="btn-pause" - v-show="state === 'running'" + v-show="state === 'running' && !countdown?.isFinished.value" @click="() => { setState('paused'); countdown?.pause(); }" > diff --git a/client/src/views/Timer/Timer.ts b/client/src/views/Timer/Timer.ts index a46a94c..6b95695 100644 --- a/client/src/views/Timer/Timer.ts +++ b/client/src/views/Timer/Timer.ts @@ -8,9 +8,12 @@ import { pauseOutline } from 'ionicons/icons'; -import { getTimer } from '@/db/crud/timerCrud'; import type { TimerRow } from '@/types/timerType'; import { useCountdown } from '@/composables/useTimer'; +import { playSound } from '@/composables/useAudio'; +import { getSoundPathById } from '@/composables/libAudio'; +import { loadConfig } from '@/composables/useConfig'; +import { queueTimer } from '@/composables/chainTimer'; import { CountdownReturn } from '@/types/timerType'; /** Возможные состояния таймера */ @@ -43,6 +46,9 @@ export default defineComponent({ /** Shallow-ссылка на экземпляр composable обратного отсчёта */ const countdown = shallowRef(null); + /** Чтение конфига */ + const config = loadConfig() + /** Останавливает таймер при размонтировании компонента */ onUnmounted(() => { countdown.value?.stop(); @@ -51,15 +57,14 @@ export default defineComponent({ /** Загружает данные таймера из БД и инициализирует отсчёт */ const loadTimer = async (): Promise => { try { - const result = await getTimer(id); - const timerData = Array.isArray(result) ? result[0] : result; - timer.value = timerData; + const timers = await queueTimer(id); countdown.value = useCountdown({ - seconds: timerData.pomodoro_time ?? 0, - onFinish: () => alert('Время вышло!') + timers: timers, + onFinish: async () => { + await playSound(getSoundPathById((await config).sound.sound_id)); + } }); - } catch (e) { error.value = 'Ошибка загрузки таймера'; console.error(e);