fix: instance activity chart wrong online time calculation

This commit is contained in:
pa
2025-12-17 09:59:37 +09:00
committed by Natsumi
parent 622506c7a0
commit a3b71007d7
2 changed files with 17 additions and 3 deletions
@@ -196,7 +196,8 @@
activityDetailData, activityDetailData,
isDetailVisible, isDetailVisible,
isSoloInstanceVisible, isSoloInstanceVisible,
isNoFriendInstanceVisible isNoFriendInstanceVisible,
selectedDate
); );
const { isDetailDataFiltered, findMatchingDetailData, generateYAxisLabel } = useChartHelpers(); const { isDetailDataFiltered, findMatchingDetailData, generateYAxisLabel } = useChartHelpers();
@@ -1,14 +1,27 @@
import { computed } from 'vue'; import { computed } from 'vue';
import dayjs from 'dayjs';
export function useActivityDataProcessor( export function useActivityDataProcessor(
activityData, activityData,
activityDetailData, activityDetailData,
isDetailVisible, isDetailVisible,
isSoloInstanceVisible, isSoloInstanceVisible,
isNoFriendInstanceVisible isNoFriendInstanceVisible,
selectedDate
) { ) {
const totalOnlineTime = computed(() => { const totalOnlineTime = computed(() => {
return activityData.value?.reduce((acc, item) => acc + item.time, 0); return activityData.value?.reduce((acc, item, idx) => {
// If the joinTime of the first data is on the previous day,
// and the data traverses midnight, the duration starts at midnight
if (idx === 0) {
const midnight = dayjs.tz(selectedDate.value).startOf('day');
if (midnight.isAfter(item.joinTime)) {
return item.leaveTime - dayjs.tz(midnight).valueOf();
}
}
return acc + item.time;
}, 0);
}); });
const filteredActivityDetailData = computed(() => { const filteredActivityDetailData = computed(() => {