Skip to content

Commit f90020b

Browse files
committed
fix(calendar): only persist calendar date when set
1 parent b02e141 commit f90020b

File tree

5 files changed

+21
-19
lines changed

5 files changed

+21
-19
lines changed

src/components/views/calendar/CalendarNavbar.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ const pickerValue = computed({
3333
set: (value: number) => {
3434
const newDate = value ? new Date(value) : new Date();
3535
if (newDate.toLocaleDateString() === center.value.toLocaleDateString()) return;
36-
clearState(value ? new Date(value) : undefined);
36+
return clearState(newDate);
3737
},
3838
});
3939

src/components/views/releases/ReleasesNavbar.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ const pickerValue = computed({
2727
set: (value: number) => {
2828
const newDate = value ? new Date(value) : new Date();
2929
if (newDate.toLocaleDateString() === center.value.toLocaleDateString()) return;
30-
clearState(value ? new Date(value) : undefined);
30+
clearState(newDate);
3131
},
3232
});
3333

src/stores/data/calendar.store.ts

+10-12
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,9 @@ export const useCalendarStore = defineStore(CalendarStoreConstants.Store, () =>
5151
const weeks = ref(1);
5252
const days = computed(() => weeks.value * 7 * 2);
5353

54-
const center = ref<Date>(new Date());
54+
const _center = ref<Date>();
55+
const center = computed(() => _center.value ?? new Date());
56+
5557
const startCalendar = ref<Date>(DateUtils.weeks.previous(weeks.value, center.value));
5658
const endCalendar = ref<Date>(DateUtils.weeks.next(weeks.value, center.value));
5759

@@ -60,22 +62,22 @@ export const useCalendarStore = defineStore(CalendarStoreConstants.Store, () =>
6062
const calendarErrors = reactive<ErrorDictionary>({});
6163
ErrorService.registerDictionary('calendar', calendarErrors);
6264

63-
const saveState = async (clear = false) => {
65+
const saveState = async () => {
6466
return storage.local.set<CalendarState>(CalendarStoreConstants.Store, {
65-
center: clear ? undefined : center.value.getTime(),
67+
center: _center.value?.getTime(),
6668
weeks: weeks.value,
6769
extended: extended.value,
6870
});
6971
};
7072

7173
const clearState = (date?: Date, save = true) => {
7274
calendar.value = [];
73-
center.value = date ?? new Date();
75+
_center.value = date;
7476
startCalendar.value = DateUtils.weeks.previous(weeks.value, center.value);
7577
endCalendar.value = DateUtils.weeks.next(weeks.value, center.value);
7678
clearProxy(calendarErrors);
7779
if (!save) return;
78-
saveState(!date).catch(e => Logger.error('Failed to save calendar state', e));
80+
saveState().catch(e => Logger.error('Failed to save calendar state', e));
7981
};
8082

8183
const restoreState = async () => {
@@ -159,18 +161,14 @@ export const useCalendarStore = defineStore(CalendarStoreConstants.Store, () =>
159161
};
160162

161163
return {
164+
initCalendarStore,
165+
fetchCalendar,
162166
clearState,
163-
saveState,
164-
restoreState,
165167
loading,
166168
calendar,
167-
startCalendar,
168-
endCalendar,
169-
fetchCalendar,
170-
filter,
171169
center,
170+
filter,
172171
filteredCalendar,
173-
initCalendarStore,
174172
extended: computed({
175173
get: () => extended.value,
176174
set: (value: boolean) => {

src/stores/data/releases.store.ts

+7-5
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,9 @@ export const useReleasesStore = defineStore(ReleasesStoreConstants.Store, () =>
7171
const weeks = ref(1);
7272
const days = computed(() => weeks.value * 7 * 2);
7373

74-
const center = ref<Date>(new Date());
74+
const _center = ref<Date>();
75+
const center = computed(() => _center.value ?? new Date());
76+
7577
const startCalendar = ref<Date>(DateUtils.weeks.previous(weeks.value, center.value));
7678
const endCalendar = ref<Date>(DateUtils.weeks.next(weeks.value, center.value));
7779

@@ -84,21 +86,21 @@ export const useReleasesStore = defineStore(ReleasesStoreConstants.Store, () =>
8486
const releasesErrors = reactive<ErrorDictionary>({});
8587
ErrorService.registerDictionary('releases', releasesErrors);
8688

87-
const saveState = async (clear = false) =>
89+
const saveState = async () =>
8890
storage.local.set<ReleaseState>(ReleasesStoreConstants.Store, {
89-
center: clear ? undefined : center.value.getTime(),
91+
center: _center.value?.getTime(),
9092
weeks: weeks.value,
9193
region: region.value,
9294
releaseType: releaseType.value,
9395
});
9496

9597
const clearState = (date?: Date) => {
9698
releases.value = [];
97-
center.value = date ?? new Date();
99+
_center.value = date;
98100
startCalendar.value = DateUtils.weeks.previous(weeks.value, center.value);
99101
endCalendar.value = DateUtils.weeks.next(weeks.value, center.value);
100102
clearProxy(releasesErrors);
101-
saveState(!date).catch(e => Logger.error('Failed to save calendar state', e));
103+
saveState().catch(e => Logger.error('Failed to save calendar state', e));
102104
};
103105

104106
const restoreState = async () => {

vite.config.ts

+2
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,7 @@ export default defineConfig(() => ({
176176
server: {
177177
port,
178178
open: true,
179+
host: true,
179180
hmr: {
180181
host: 'localhost',
181182
},
@@ -184,6 +185,7 @@ export default defineConfig(() => ({
184185
port: port + 1,
185186
cors: true,
186187
open: true,
188+
host: true,
187189
},
188190
build: {
189191
outDir: resolveParent('dist'),

0 commit comments

Comments
 (0)