Skip to content

Commit 2a0ebdc

Browse files
committed
Get flag for showing promo
1 parent cfcd616 commit 2a0ebdc

File tree

2 files changed

+50
-0
lines changed

2 files changed

+50
-0
lines changed
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
import { computed } from 'vue';
2+
import { Restriction } from '../entity/restriction';
3+
import { injecStorage } from '../storage/inject-storage';
4+
import { StorageParams } from '../storage/storage-params';
5+
6+
export const QUERY_PARAMS_DASHBOARD = 'dashboard.html';
7+
export const QUERY_PARAMS_DASHBOARD_TAB = 'tab';
8+
export const QUERY_PARAMS_DASHBOARD_TAB_SETTINGS = 'settings';
9+
export const QUERY_PARAMS_BLOCK = 'block.html';
10+
export const QUERY_PARAMS_BLOCK_DOMAIN = 'domain';
11+
12+
export async function usePromoExtension() {
13+
const settingsStorage = injecStorage();
14+
15+
const hasReview = await settingsStorage.getValue(StorageParams.PROMO_CLEAR_YOUTUBE);
16+
17+
if (hasReview != undefined && hasReview == true) return false;
18+
19+
const whitelist = Object.values(
20+
await settingsStorage.getValue(StorageParams.RESTRICTION_LIST, []),
21+
) as Restriction[];
22+
23+
const isIncludeYoutube = computed(
24+
() => whitelist.find(x => x.domain == 'youtube.com') != undefined,
25+
);
26+
27+
const urlObj = new URL(location.href);
28+
const isLimitPage = computed(
29+
() =>
30+
urlObj.hostname == __APP_ID__ &&
31+
urlObj.pathname.includes(QUERY_PARAMS_DASHBOARD) &&
32+
urlObj.searchParams.get(QUERY_PARAMS_DASHBOARD_TAB) == QUERY_PARAMS_DASHBOARD_TAB_SETTINGS,
33+
);
34+
35+
const isBlockPage = computed(
36+
() =>
37+
urlObj.hostname == __APP_ID__ &&
38+
urlObj.pathname.includes(QUERY_PARAMS_BLOCK) &&
39+
urlObj.searchParams.get(QUERY_PARAMS_BLOCK_DOMAIN) == 'youtube.com',
40+
);
41+
42+
const showOnLimitPage = computed(() => isLimitPage.value && isIncludeYoutube.value);
43+
const showOnBlockPage = computed(() => isBlockPage.value);
44+
45+
return showOnLimitPage || showOnBlockPage;
46+
}

src/storage/storage-params.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ export enum StorageParams {
1818
REVIEW_DATE = 'review_date',
1919
REVIEW_PROMPT_AT = 'review_prompt_at',
2020
INSTALL_DATE = 'install-date',
21+
PROMO_CLEAR_YOUTUBE = 'promo-clear-youtube',
2122
}
2223

2324
export enum StorageDeserializeParam {
@@ -60,6 +61,7 @@ export const SHOW_HINT_DEFAULT = true;
6061
export const DAILY_SUMMARY_NOTIFICATION_TIME_DEFAULT = (20 * HOUR) / 1000;
6162
export const DAILY_NOTIFICATION_DEFAULT = true;
6263
export const SHOW_CHANGELOG_DEFAULT = false;
64+
export const SHOW_PROMO_CLEAR_YOUTUBE_DEFAULT = false;
6365

6466
export function getDefaultValue(param: StorageParams) {
6567
switch (param) {
@@ -87,5 +89,7 @@ export function getDefaultValue(param: StorageParams) {
8789
return DAILY_NOTIFICATION_DEFAULT;
8890
case StorageParams.SHOW_CHANGELOG:
8991
return SHOW_CHANGELOG_DEFAULT;
92+
case StorageParams.PROMO_CLEAR_YOUTUBE:
93+
return SHOW_PROMO_CLEAR_YOUTUBE_DEFAULT;
9094
}
9195
}

0 commit comments

Comments
 (0)