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

View File

@@ -196,7 +196,8 @@
activityDetailData,
isDetailVisible,
isSoloInstanceVisible,
isNoFriendInstanceVisible
isNoFriendInstanceVisible,
selectedDate
);
const { isDetailDataFiltered, findMatchingDetailData, generateYAxisLabel } = useChartHelpers();

View File

@@ -1,14 +1,27 @@
import { computed } from 'vue';
import dayjs from 'dayjs';
export function useActivityDataProcessor(
activityData,
activityDetailData,
isDetailVisible,
isSoloInstanceVisible,
isNoFriendInstanceVisible
isNoFriendInstanceVisible,
selectedDate
) {
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(() => {