From 2b18c8ac971abe436e7b9e0e3a12b11d80cab517 Mon Sep 17 00:00:00 2001 From: Tachibana Shin Date: Tue, 18 Apr 2023 14:02:09 +0700 Subject: [PATCH] 92 add a button that temporarily disables automatic restoration of viewing sessions only current tab (#100) * add button temporarily disable restore watching * localize * lint --------- Co-authored-by: Tachibana Shin <118260404+tachib-shin@users.noreply.github.com> --- src/components/BrtPlayer.vue | 7 ++++ src/components/FragmentChaps.vue | 60 ++++++++++++++++++++++++++------ src/i18n/messages/en-US.json | 3 ++ src/i18n/messages/ja-JP.json | 3 ++ src/i18n/messages/vi-VN.json | 3 ++ src/i18n/messages/zh-CN.json | 3 ++ src/stores/state-storage.ts | 9 +++++ 7 files changed, 78 insertions(+), 10 deletions(-) create mode 100644 src/stores/state-storage.ts diff --git a/src/components/BrtPlayer.vue b/src/components/BrtPlayer.vue index 4e0be409..8b59018d 100644 --- a/src/components/BrtPlayer.vue +++ b/src/components/BrtPlayer.vue @@ -1017,6 +1017,7 @@ import type { import { useAuthStore } from "stores/auth" import { useHistoryStore } from "stores/history" import { useSettingsStore } from "stores/settings" +import { useStateStorageStore } from "stores/state-storage" import { computed, onBeforeUnmount, @@ -1038,6 +1039,7 @@ const { t } = useI18n() const authStore = useAuthStore() const settingsStore = useSettingsStore() const historyStore = useHistoryStore() +const stateStorageStore = useStateStorageStore() const router = useRouter() const $q = useQuasar() @@ -1239,6 +1241,11 @@ watch( try { console.log(":restore progress") + if (stateStorageStore.disableAutoRestoration) { + addNotice(t("bo-qua-khoi-phuc-tien-trinh-xem")) + // eslint-disable-next-line functional/no-throw-statement + throw new Error("NOT_RESET") + } const cur = ( await historyStore.getProgressChap(currentSeason, currentChap) )?.cur diff --git a/src/components/FragmentChaps.vue b/src/components/FragmentChaps.vue index ab95888e..c715fe18 100644 --- a/src/components/FragmentChaps.vue +++ b/src/components/FragmentChaps.vue @@ -2,17 +2,54 @@
{{ gridModeTabsSeasons ? t("chon-season") : t("chon-tap") }} - - - + :class=" + stateStorageStore.disableAutoRestoration ? 'text-deep-orange-13' : '' + " + > + + + {{ + stateStorageStore.disableAutoRestoration + ? t("kich-hoat-lai-khoi-phuc-tien-trinh-xem") + : t( + "vo-hieu-hoa-tam-thoi-khoi-phuc-tien-trinh-xem-truoc-tam-thoi" + ) + }} + + + + +
@@ -107,6 +144,7 @@ import type { ProgressWatchStore, Season, } from "src/pages/phim/_season.interface" +import { useStateStorageStore } from "src/stores/state-storage" import { ref, watch, watchEffect } from "vue" import { useI18n } from "vue-i18n" @@ -131,6 +169,8 @@ const props = defineProps<{ }>() const { t } = useI18n() +const stateStorageStore = useStateStorageStore() + const seasonActive = ref() // sync data by active route watch( diff --git a/src/i18n/messages/en-US.json b/src/i18n/messages/en-US.json index f0a1e08d..c4d46f5b 100644 --- a/src/i18n/messages/en-US.json +++ b/src/i18n/messages/en-US.json @@ -23,6 +23,7 @@ "bat-tieng-m": "Unmute (m)", "bay-gio-_value": "Now {0}", "binh-luan": "Comment", + "bo-qua-khoi-phuc-tien-trinh-xem": "Skip restore watch progress", "cai-dat": "Setting", "cai-dat-chung": "General settings", "cai-dat-extension-animevsub-helper": "Install extension AnimeVsub Helper", @@ -113,6 +114,7 @@ "khieu-nai-vi-pham": "Complaint of violation", "khong-co-danh-sach-phat-nao": "No playlists yet", "khong-co-thong-bao-moi-nao": "No new announcements", + "kich-hoat-lai-khoi-phuc-tien-trinh-xem": "Re-enable watch progress recovery", "kiem-tra-cap-nhat": "Check for updates", "la-mot-vpn-mien-phi": "is a free VPN", "lich-chieu": "Showtimes", @@ -225,6 +227,7 @@ "ve-chung-toi": "About us", "ve-ung-dung": "About the app", "video-tam-thoi-khong-kha-dung": "Video is temporarily unavailable", + "vo-hieu-hoa-tam-thoi-khoi-phuc-tien-trinh-xem-truoc-tam-thoi": "Temporarily disable restoring preview progress (temporarily)", "voi": "with", "vui-long-thu-cap-nhat-extension-neu-su-co-khong-duoc-khac-phuc-vui-long-gui-email-den": "Please try updating the extension, if the problem is not fixed please email to", "xac-nhan": "Confirm", diff --git a/src/i18n/messages/ja-JP.json b/src/i18n/messages/ja-JP.json index 9338038c..f3d301d1 100644 --- a/src/i18n/messages/ja-JP.json +++ b/src/i18n/messages/ja-JP.json @@ -23,6 +23,7 @@ "bat-tieng-m": "ミュート解除 (分)", "bay-gio-_value": "現在{0}", "binh-luan": "コメント", + "bo-qua-khoi-phuc-tien-trinh-xem": "復元ウォッチの進行状況をスキップ", "cai-dat": "設定", "cai-dat-chung": "一般設定", "cai-dat-extension-animevsub-helper": "拡張機能 AnimeVsub Helper をインストールする", @@ -113,6 +114,7 @@ "khieu-nai-vi-pham": "違反の苦情", "khong-co-danh-sach-phat-nao": "プレイリストはまだありません", "khong-co-thong-bao-moi-nao": "新しい発表はありません", + "kich-hoat-lai-khoi-phuc-tien-trinh-xem": "時計の進行状況の回復を再度有効にする", "kiem-tra-cap-nhat": "アップデートを確認", "la-mot-vpn-mien-phi": "無料のVPNです", "lich-chieu": "上映時間", @@ -225,6 +227,7 @@ "ve-chung-toi": "私たちに関しては", "ve-ung-dung": "アプリについて", "video-tam-thoi-khong-kha-dung": "動画は一時的に利用できません", + "vo-hieu-hoa-tam-thoi-khoi-phuc-tien-trinh-xem-truoc-tam-thoi": "プレビューの進行状況の復元を一時的に無効にする (一時的に)", "voi": "と", "vui-long-thu-cap-nhat-extension-neu-su-co-khong-duoc-khac-phuc-vui-long-gui-email-den": "拡張機能を更新してみてください。問題が解決しない場合は、にメールしてください。", "xac-nhan": "確認", diff --git a/src/i18n/messages/vi-VN.json b/src/i18n/messages/vi-VN.json index f86cffe4..15d99c19 100644 --- a/src/i18n/messages/vi-VN.json +++ b/src/i18n/messages/vi-VN.json @@ -23,6 +23,7 @@ "bat-tieng-m": "Bật tiếng (m)", "bay-gio-_value": "Bây giờ {0}", "binh-luan": "Bình luận", + "bo-qua-khoi-phuc-tien-trinh-xem": "Bỏ qua khôi phục tiến trình xem", "cai-dat": "Cài đặt", "cai-dat-chung": "Cài đặt chung", "cai-dat-extension-animevsub-helper": "Cài đặt extension AnimeVsub Helper", @@ -113,6 +114,7 @@ "khieu-nai-vi-pham": "Khiếu nại vi phạm", "khong-co-danh-sach-phat-nao": "Không có danh sách phát nào", "khong-co-thong-bao-moi-nao": "Không có thông báo mới nào", + "kich-hoat-lai-khoi-phuc-tien-trinh-xem": "Kích hoạt lại khôi phục tiến trình xem", "kiem-tra-cap-nhat": "Kiểm tra cập nhật", "la-mot-vpn-mien-phi": "là một VPN miễn phí", "lich-chieu": "Lịch chiếu", @@ -225,6 +227,7 @@ "ve-chung-toi": "Về chúng tôi", "ve-ung-dung": "Về ứng dụng", "video-tam-thoi-khong-kha-dung": "Video tạm thời không khả dụng", + "vo-hieu-hoa-tam-thoi-khoi-phuc-tien-trinh-xem-truoc-tam-thoi": "Vô hiệu hóa tạm thời khôi phục tiến trình xem trước (tạm thời)", "voi": "với", "vui-long-thu-cap-nhat-extension-neu-su-co-khong-duoc-khac-phuc-vui-long-gui-email-den": "Vui lòng thử cập nhật extension, nếu sự cố không được khắc phục vui lòng gửi email đến", "xac-nhan": "Xác nhận", diff --git a/src/i18n/messages/zh-CN.json b/src/i18n/messages/zh-CN.json index fd3b44bd..13d76bf1 100644 --- a/src/i18n/messages/zh-CN.json +++ b/src/i18n/messages/zh-CN.json @@ -23,6 +23,7 @@ "bat-tieng-m": "取消静音 (m)", "bay-gio-_value": "现在{0}", "binh-luan": "评论", + "bo-qua-khoi-phuc-tien-trinh-xem": "跳过恢复观看进度", "cai-dat": "环境", "cai-dat-chung": "通用设置", "cai-dat-extension-animevsub-helper": "安装扩展 AnimeVsub Helper", @@ -113,6 +114,7 @@ "khieu-nai-vi-pham": "违规投诉", "khong-co-danh-sach-phat-nao": "还没有播放列表", "khong-co-thong-bao-moi-nao": "没有新的公告", + "kich-hoat-lai-khoi-phuc-tien-trinh-xem": "重新启用观看进度恢复", "kiem-tra-cap-nhat": "检查更新", "la-mot-vpn-mien-phi": "是一个免费的VPN", "lich-chieu": "放映时间", @@ -225,6 +227,7 @@ "ve-chung-toi": "关于我们", "ve-ung-dung": "关于应用程序", "video-tam-thoi-khong-kha-dung": "视频暂时不可用", + "vo-hieu-hoa-tam-thoi-khoi-phuc-tien-trinh-xem-truoc-tam-thoi": "暂时禁用恢复预览进度(暂时)", "voi": "和", "vui-long-thu-cap-nhat-extension-neu-su-co-khong-duoc-khac-phuc-vui-long-gui-email-den": "请尝试更新扩展程序,如果问题未解决,请发送电子邮件至", "xac-nhan": "确认", diff --git a/src/stores/state-storage.ts b/src/stores/state-storage.ts new file mode 100644 index 00000000..595664b6 --- /dev/null +++ b/src/stores/state-storage.ts @@ -0,0 +1,9 @@ +import { defineStore } from "pinia"; +import { ref } from "vue"; + +export const useStateStorageStore = +defineStore("state-storage", () => { + const disableAutoRestoration = ref(false) + + return { disableAutoRestoration } +})