2020 <p class =" title" >{{ t('pomodoroWork.message') }}</p >
2121 <VueDatePicker v-model =" workTime" time-picker class =" date-picker" />
2222 </div >
23+ <div class =" pomodoro-block" >
24+ <PomodoroSoundsSelector
25+ v-if =" audioAfterWork"
26+ :option =" StorageParams.POMODORO_AUDIO_AFTER_WORK"
27+ :value =" audioAfterWork"
28+ />
29+ </div >
2330 <div class =" pomodoro-block" >
2431 <p class =" title" >{{ t('pomodoroRest.message') }}</p >
2532 <VueDatePicker v-model =" restTime" time-picker class =" date-picker" />
2633 </div >
34+ <div class =" pomodoro-block" >
35+ <PomodoroSoundsSelector
36+ v-if =" audioAfterRest"
37+ :option =" StorageParams.POMODORO_AUDIO_AFTER_REST"
38+ :value =" audioAfterRest"
39+ />
40+ </div >
2741 <div class =" pomodoro-block" >
2842 <p class =" title" >{{ t('pomodoroFrequency.message') }}</p >
2943 <input type =" number" class =" frequency" v-model =" frequency" />
3044 </div >
45+ <div class =" pomodoro-block" >
46+ <PomodoroSoundsSelector
47+ v-if =" audioAfterFinished"
48+ :option =" StorageParams.POMODORO_AUDIO_AFTER_FINISHED"
49+ :value =" audioAfterFinished"
50+ />
51+ </div >
3152 </div >
3253 <button
3354 class =" d-inline-block mt-15"
@@ -53,6 +74,9 @@ import { useI18n } from 'vue-i18n';
5374import { injecStorage } from ' ../storage/inject-storage' ;
5475import {
5576 IS_POMODORO_ENABLED_DEFAULT ,
77+ POMODORO_AUDIO_AFTER_FINISHED_DEFAULT ,
78+ POMODORO_AUDIO_AFTER_REST_DEFAULT ,
79+ POMODORO_AUDIO_AFTER_WORK_DEFAULT ,
5680 POMODORO_FREQUENCY_DEFAULT ,
5781 POMODORO_INTERVAL_REST_DEFAULT ,
5882 POMODORO_INTERVAL_WORK_DEFAULT ,
@@ -61,6 +85,9 @@ import {
6185import { Time } from ' ../utils/time' ;
6286import { logger } from ' ../utils/logger' ;
6387import { useBadge , BadgeColor , BadgeIcon } from ' ../functions/useBadge' ;
88+ import { PomodoroSounds } from ' ../utils/pomodoro' ;
89+ import PomodoroSoundsSelector from ' ../components/PomodoroSoundsSelector.vue' ;
90+ import Browser from ' webextension-polyfill' ;
6491
6592const { t } = useI18n ();
6693const settingsStorage = injecStorage ();
@@ -75,6 +102,9 @@ const restTime = ref<Time>({
75102});
76103const frequency = ref <number >(3 );
77104const isEnabled = ref <boolean >();
105+ const audioAfterWork = ref <PomodoroSounds >();
106+ const audioAfterRest = ref <PomodoroSounds >();
107+ const audioAfterFinished = ref <PomodoroSounds >();
78108
79109onMounted (async () => {
80110 isEnabled .value = await settingsStorage .getValue (
@@ -97,6 +127,21 @@ onMounted(async () => {
97127 StorageParams .POMODORO_FREQUENCY ,
98128 POMODORO_FREQUENCY_DEFAULT ,
99129 );
130+
131+ audioAfterWork .value = await settingsStorage .getValue (
132+ StorageParams .POMODORO_AUDIO_AFTER_WORK ,
133+ POMODORO_AUDIO_AFTER_WORK_DEFAULT ,
134+ );
135+
136+ audioAfterRest .value = await settingsStorage .getValue (
137+ StorageParams .POMODORO_AUDIO_AFTER_REST ,
138+ POMODORO_AUDIO_AFTER_REST_DEFAULT ,
139+ );
140+
141+ audioAfterFinished .value = await settingsStorage .getValue (
142+ StorageParams .POMODORO_AUDIO_AFTER_FINISHED ,
143+ POMODORO_AUDIO_AFTER_FINISHED_DEFAULT ,
144+ );
100145});
101146
102147async function changeStatus() {
@@ -131,12 +176,18 @@ async function changeStatus() {
131176
132177 logger .log (` Change pomodoro status to ${String (isEnabled .value ).toUpperCase ()} ` );
133178}
179+
180+ function playAudio(sound : PomodoroSounds ) {
181+ const myAudio = new Audio (Browser .runtime .getURL (` assets/pomodoro-sounds/${sound } ` ));
182+ myAudio .play ();
183+ }
134184 </script >
135185
136186<style scoped>
137187.pomodoro-block {
138188 display : flex ;
139189 justify-content : start ;
190+ align-items : center ;
140191}
141192.date-picker {
142193 width : 120px ;
0 commit comments