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
97 lines (90 loc) · 3.24 KB
/
storage-params.ts
File metadata and controls
97 lines (90 loc) · 3.24 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
import { Tab } from '../entity/tab';
import { TimeInterval } from '../entity/time-interval';
import { HOUR } 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',
}
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 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;
}
}