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
129 lines (122 loc) · 4.95 KB
/
Copy pathstorage-params.ts
File metadata and controls
129 lines (122 loc) · 4.95 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
128
129
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',
PROMO_CLEAR_YOUTUBE_DATE = 'promo-clear-youtube-date',
PROMO_CLEAR_YOUTUBE_PROMPT_AT = 'promo-clear-youtube-prompt-at',
}
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;
}
}