respect start of week setting for charts

This commit is contained in:
Gregor Vostrak
2024-04-29 16:47:46 +02:00
parent 492be92592
commit fb3d326c28
6 changed files with 75 additions and 9 deletions

View File

@@ -5,7 +5,9 @@ import isToday from 'dayjs/plugin/isToday';
import isYesterday from 'dayjs/plugin/isYesterday';
import utc from 'dayjs/plugin/utc';
import timezone from 'dayjs/plugin/timezone';
import { getUserTimezone } from '@/utils/useUser';
import { getUserTimezone, getWeekStart } from '@/utils/useUser';
import updateLocale from 'dayjs/plugin/updateLocale';
import { computed } from 'vue';
dayjs.extend(relativeTime);
dayjs.extend(isToday);
@@ -13,11 +15,28 @@ dayjs.extend(isYesterday);
dayjs.extend(duration);
dayjs.extend(utc);
dayjs.extend(timezone);
dayjs.extend(updateLocale);
export function getDayJsInstance() {
dayjs.updateLocale('en', {
weekStart: firstDayIndex.value,
});
return dayjs;
}
export const firstDayIndex = computed(() => {
const apiDayOrder = [
'sunday',
'monday',
'tuesday',
'wednesday',
'thursday',
'friday',
'saturday',
];
return apiDayOrder.indexOf(getWeekStart());
});
export function formatHumanReadableDuration(duration: number): string {
const dayJsDuration = dayjs.duration(duration, 's');
const hours = dayJsDuration.hours() + dayJsDuration.days() * 24;