Skip to content

Commit 0d79211

Browse files
committed
Fix UserCalendarSync component time ago calculation
1 parent 61c9cb7 commit 0d79211

File tree

1 file changed

+19
-22
lines changed

1 file changed

+19
-22
lines changed

frontend/src/views/DashboardView/components/UserCalendarSync.vue

Lines changed: 19 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,47 @@
11
<script setup lang="ts">
2-
import { computed, inject, onMounted, ref } from 'vue';
3-
import { callKey, refreshKey } from '@/keys';
2+
import { computed, inject, ref } from 'vue';
3+
import { refreshKey } from '@/keys';
44
import { PhArrowClockwise } from '@phosphor-icons/vue';
55
import { storeToRefs } from 'pinia';
6-
import { useTimeAgoIntl } from '@vueuse/core';
6+
import { formatTimeAgoIntl, useNow } from '@vueuse/core';
77
import { useI18n } from 'vue-i18n';
88
import { useCalendarStore } from '@/stores/calendar-store';
9-
import { createScheduleStore } from '@/stores/schedule-store';
9+
import { useScheduleStore } from '@/stores/schedule-store';
1010
import { useUserStore } from '@/stores/user-store';
1111
1212
const refresh = inject(refreshKey);
13-
const call = inject(callKey);
1413
const { t } = useI18n();
1514
16-
const loading = ref(false);
17-
const lastRefreshedTime = ref(Date.now());
18-
1915
const calendarStore = useCalendarStore();
2016
const userStore = useUserStore();
21-
const scheduleStore = createScheduleStore(call);
17+
const scheduleStore = useScheduleStore();
18+
2219
const { firstSchedule } = storeToRefs(scheduleStore);
2320
21+
const loading = ref(false);
22+
const lastRefreshedTime = ref(new Date());
23+
24+
const { now } = useNow({ interval: 30000, controls: true });
25+
const timeAgo = computed(() =>
26+
formatTimeAgoIntl(lastRefreshedTime.value, { locale: userStore?.data?.settings?.language }, now.value)
27+
);
28+
2429
const scheduleCalendar = computed(() => {
2530
return calendarStore.calendarById(firstSchedule.value?.calendar_id)
2631
})
2732
28-
const timeAgo = useTimeAgoIntl(lastRefreshedTime, { locale: userStore.data.settings.language });
29-
3033
async function onSyncCalendarButtonClicked() {
3134
loading.value = true;
3235
3336
await calendarStore.syncCalendars();
34-
await refreshData();
35-
lastRefreshedTime.value = Date.now();
37+
await refresh();
38+
39+
const currentTime = new Date();
40+
lastRefreshedTime.value = currentTime;
41+
now.value = currentTime;
3642
3743
loading.value = false;
3844
}
39-
40-
async function refreshData() {
41-
calendarStore.$reset();
42-
await refresh();
43-
};
44-
45-
onMounted(async () => {
46-
await scheduleStore.fetch();
47-
})
4845
</script>
4946

5047
<template>

0 commit comments

Comments
 (0)