forked from Stigmatoz/web-activity-time-tracker
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstorage-params.ts
More file actions
127 lines (120 loc) · 4.83 KB
/
storage-params.ts
File metadata and controls
127 lines (120 loc) · 4.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
import { Tab } from '../entity/tab';
import { TimeInterval } from '../entity/time-interval';
import { PomodoroSounds } from '../utils/pomodoro';
import { HOUR, MINUTE_IN_SECONDS } from '../utils/time';
export enum StorageParams {
BLACK_LIST = 'black_list',
RESTRICTION_LIST = 'restriction_list',
NOTIFICATION_LIST = 'notification_list',
NOTIFICATION_MESSAGE = 'notification_message',
INTERVAL_INACTIVITY = 'inactivity_interval',
DARK_MODE = 'night_mode',
VIEW_TIME_IN_BADGE = 'view_time_in_badge',
SHOW_CHANGELOG = 'show_changelog',
BLOCK_DEFERRAL = 'view_block_deferral',
BLOCK_DEFERRAL_TIME = 'view_block_deferral_time',
DAILY_SUMMARY_NOTIFICATION_TIME = 'daily-summary-notification-time',
DAILY_NOTIFICATION = 'daily_notification',
REVIEW_DATE = 'review_date',
REVIEW_PROMPT_AT = 'review_prompt_at',
INSTALL_DATE = 'install-date',
PROMO_CLEAR_YOUTUBE_ON_LIMITS = 'promo-clear-youtube-on-limits',
PROMO_CLEAR_YOUTUBE_ON_BLOCK = 'promo-clear-youtube-on-block',
IS_POMODORO_ENABLED = 'is-pomodoro-enabled',
POMODORO_START_TIME = 'pomodoro-start-time',
POMODORO_INTERVAL_WORK = 'pomodoro-interval-work',
POMODORO_AUDIO_AFTER_WORK = 'pomodoro-audio-after-work',
POMODORO_AUDIO_AFTER_REST = 'pomodoro-audio-after-rest',
POMODORO_AUDIO_AFTER_FINISHED = 'pomodoro-audio-after-finished',
POMODORO_INTERVAL_REST = 'pomodoro-interval-rest',
POMODORO_FREQUENCY = 'pomodoro-frequency',
}
export enum StorageDeserializeParam {
TABS = 'tabs',
TIMEINTERVAL_LIST = 'time_interval',
}
export function createDeserializeParambject(
param: StorageDeserializeParam,
): StorageDeserializeType {
switch (param) {
case StorageDeserializeParam.TABS:
return new Tab();
case StorageDeserializeParam.TIMEINTERVAL_LIST:
return new TimeInterval();
}
}
export type StorageDeserializeType = Tab | TimeInterval;
export enum InactivityInterval {
Seconds_30 = 30,
Seconds_45 = 45,
Min_1 = 60,
Min_2 = 120,
Min_5 = 300,
Min_10 = 600,
Min_20 = 1200,
Min_30 = 1800,
}
export const NOTIFICATION_MESSAGE_DEFAULT = 'You have spent a lot of time on this site';
export const INTERVAL_INACTIVITY_DEFAULT = InactivityInterval.Seconds_30;
export const INTERVAL_SAVE_STORAGE_DEFAULT = 5000;
export const DARK_MODE_DEFAULT = false;
export const VIEW_TIME_IN_BADGE_DEFAULT = true;
export const BLOCK_DEFERRAL_DEFAULT = true;
export const SHOW_HINT_DEFAULT = true;
// default time is 20:00, time in seconds
export const DAILY_SUMMARY_NOTIFICATION_TIME_DEFAULT = (20 * HOUR) / 1000;
export const DAILY_NOTIFICATION_DEFAULT = true;
export const SHOW_CHANGELOG_DEFAULT = false;
export const SHOW_PROMO_CLEAR_YOUTUBE_DEFAULT = false;
export const IS_POMODORO_ENABLED_DEFAULT = false;
export const POMODORO_INTERVAL_WORK_DEFAULT = 25 * MINUTE_IN_SECONDS;
export const POMODORO_INTERVAL_REST_DEFAULT = 5 * MINUTE_IN_SECONDS;
export const POMODORO_FREQUENCY_DEFAULT = 3;
export const POMODORO_AUDIO_AFTER_WORK_DEFAULT = PomodoroSounds['Sound 3'];
export const POMODORO_AUDIO_AFTER_REST_DEFAULT = PomodoroSounds['Sound 8'];
export const POMODORO_AUDIO_AFTER_FINISHED_DEFAULT = PomodoroSounds['Sound 10'];
export function getDefaultValue(param: StorageParams) {
switch (param) {
case StorageParams.BLACK_LIST:
return [];
case StorageParams.RESTRICTION_LIST:
return [];
case StorageParams.NOTIFICATION_LIST:
return [];
case StorageParams.NOTIFICATION_MESSAGE:
return NOTIFICATION_MESSAGE_DEFAULT;
case StorageParams.INTERVAL_INACTIVITY:
return INTERVAL_INACTIVITY_DEFAULT;
case StorageParams.DARK_MODE:
return DARK_MODE_DEFAULT;
case StorageParams.VIEW_TIME_IN_BADGE:
return VIEW_TIME_IN_BADGE_DEFAULT;
case StorageParams.BLOCK_DEFERRAL:
return BLOCK_DEFERRAL_DEFAULT;
case StorageParams.BLOCK_DEFERRAL_TIME:
return [];
case StorageParams.DAILY_SUMMARY_NOTIFICATION_TIME:
return DAILY_SUMMARY_NOTIFICATION_TIME_DEFAULT;
case StorageParams.DAILY_NOTIFICATION:
return DAILY_NOTIFICATION_DEFAULT;
case StorageParams.SHOW_CHANGELOG:
return SHOW_CHANGELOG_DEFAULT;
case StorageParams.PROMO_CLEAR_YOUTUBE_ON_BLOCK:
case StorageParams.PROMO_CLEAR_YOUTUBE_ON_LIMITS:
return SHOW_PROMO_CLEAR_YOUTUBE_DEFAULT;
case StorageParams.IS_POMODORO_ENABLED:
return IS_POMODORO_ENABLED_DEFAULT;
case StorageParams.POMODORO_INTERVAL_WORK:
return POMODORO_INTERVAL_WORK_DEFAULT;
case StorageParams.POMODORO_INTERVAL_REST:
return POMODORO_INTERVAL_REST_DEFAULT;
case StorageParams.POMODORO_FREQUENCY:
return POMODORO_FREQUENCY_DEFAULT;
case StorageParams.POMODORO_AUDIO_AFTER_WORK:
return POMODORO_AUDIO_AFTER_WORK_DEFAULT;
case StorageParams.POMODORO_AUDIO_AFTER_REST:
return POMODORO_AUDIO_AFTER_REST_DEFAULT;
case StorageParams.POMODORO_AUDIO_AFTER_FINISHED:
return POMODORO_AUDIO_AFTER_FINISHED_DEFAULT;
}
}