Skip to content

Commit 7b486a2

Browse files
committed
fix(badge): uses local date to detect today instead of UTC
1 parent 9e22b3d commit 7b486a2

File tree

3 files changed

+37
-13
lines changed

3 files changed

+37
-13
lines changed

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
},
5353
"dependencies": {
5454
"@dvcol/base-http-client": "^1.10.0",
55-
"@dvcol/common-utils": "^1.8.0",
55+
"@dvcol/common-utils": "^1.9.0",
5656
"@dvcol/tmdb-http-client": "^1.2.3",
5757
"@dvcol/trakt-http-client": "^1.4.5",
5858
"@dvcol/web-extension-utils": "^3.3.2",

pnpm-lock.yaml

+9-9
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/stores/settings/badge.store.ts

+27-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1-
import { DateUtils, dayOfTheWeek } from '@dvcol/common-utils/common/date';
1+
import { DateUtils, dayOfTheWeek, getTodayISOLocal } from '@dvcol/common-utils/common/date';
22
import { defineStore, storeToRefs } from 'pinia';
33
import { computed, ref, watch } from 'vue';
44

55
import type { CalendarItem } from '~/utils/calendar.utils';
66

77
import { MessageType } from '~/models/message/message-type.model';
88
import { Logger } from '~/services/logger.service';
9+
import { NotificationService } from '~/services/notification.service';
910
import { fetchCalendarData } from '~/stores/data/calendar.store';
1011
import { Colors } from '~/styles/colors.style';
1112
import { sendMessage } from '~/utils/browser/browser-message.utils';
@@ -25,7 +26,7 @@ const sendCalendarBadge = async () => {
2526
{} as Record<string, CalendarItem[]>,
2627
);
2728

28-
const today = new Date().toISOString().split('T')[0];
29+
const today = getTodayISOLocal().split('T')[0];
2930
const text = week[today]?.length.toString();
3031
if (!text?.length) return;
3132
const title = Object.entries(week)
@@ -64,6 +65,8 @@ const BadgeStoreConstants = {
6465
export const useBadgeStore = defineStore(BadgeStoreConstants.Store, () => {
6566
const enableBadge = ref(false);
6667

68+
const loading = ref(false);
69+
6770
const saveState = debounce(
6871
() =>
6972
storage.sync.set<BadgeStoreState>(BadgeStoreConstants.Store, {
@@ -78,14 +81,35 @@ export const useBadgeStore = defineStore(BadgeStoreConstants.Store, () => {
7881
if (restored?.enableBadge !== undefined) enableBadge.value = restored.enableBadge;
7982
};
8083

84+
const getBadgeData = async () => {
85+
if (loading.value) {
86+
Logger.warn('Already loading badge data');
87+
return;
88+
}
89+
90+
loading.value = true;
91+
92+
Logger.debug('Getting badge data');
93+
94+
try {
95+
await sendCalendarBadge();
96+
} catch (e) {
97+
Logger.error('Failed to get badge data', e);
98+
NotificationService.error('Failed to get badge data', e);
99+
throw e;
100+
} finally {
101+
loading.value = false;
102+
}
103+
};
104+
81105
const initBadgeStore = async () => {
82106
await restoreState();
83107

84108
watch(
85109
enableBadge,
86110
async () => {
87111
if (!enableBadge.value) return calendarBadge();
88-
await sendCalendarBadge();
112+
await getBadgeData();
89113
},
90114
{
91115
immediate: true,

0 commit comments

Comments
 (0)