remove useVirtualizerAnchor

This commit is contained in:
pa
2026-01-25 15:17:27 +09:00
parent 2b1d0ff344
commit 9ce33e337f
3 changed files with 2 additions and 77 deletions

View File

@@ -1,62 +0,0 @@
import { nextTick } from 'vue';
export function useVirtualizerAnchor({
virtualizer,
virtualRows,
scrollViewportRef
}) {
const captureScrollAnchor = () => {
const viewport = scrollViewportRef.value;
const items = virtualizer.value?.getVirtualItems?.() ?? [];
if (!viewport || !items.length) {
return null;
}
const firstItem = items[0];
const row = virtualRows.value[firstItem.index];
const key = row?.key ?? firstItem.key;
if (typeof key === 'undefined') {
return null;
}
return {
key,
offset: viewport.scrollTop - firstItem.start
};
};
const restoreScrollAnchor = (anchor) => {
if (!anchor) {
return;
}
const index = virtualRows.value.findIndex(
(row) => row?.key === anchor.key
);
if (index === -1) {
return;
}
const offsetInfo = virtualizer.value?.getOffsetForIndex?.(
index,
'start'
);
const targetStart = Array.isArray(offsetInfo) ? offsetInfo[0] : null;
if (typeof targetStart !== 'number') {
return;
}
virtualizer.value?.scrollToOffset?.(targetStart + anchor.offset);
};
const measureWithAnchor = (measureFn) => {
const anchor = captureScrollAnchor();
nextTick(() => {
if (measureFn) {
measureFn();
}
restoreScrollAnchor(anchor);
});
};
return {
captureScrollAnchor,
restoreScrollAnchor,
measureWithAnchor
};
}

View File

@@ -98,7 +98,6 @@
} from '../../../stores';
import { isRealInstance, userImage, userStatusClass } from '../../../shared/utils';
import { getFriendsLocations } from '../../../shared/utils/location.js';
import { useVirtualizerAnchor } from '../../../composables/useVirtualizerAnchor';
import FriendItem from './FriendItem.vue';
import Location from '../../../components/Location.vue';
@@ -421,12 +420,6 @@
};
};
const { measureWithAnchor } = useVirtualizerAnchor({
virtualizer,
virtualRows,
scrollViewportRef
});
function saveFriendsGroupStates() {
configRepository.setBool('VRCX_isFriendsGroupMe', isFriendsGroupMe.value);
configRepository.setBool('VRCX_isFriendsGroupFavorites', isVIPFriends.value);
@@ -485,7 +478,7 @@
});
watch(virtualRows, () => {
measureWithAnchor(() => {
nextTick(() => {
virtualizer.value?.measure?.();
});
});

View File

@@ -56,7 +56,6 @@
import { useAppearanceSettingsStore, useGroupStore } from '../../../stores';
import { convertFileUrlToImageUrl } from '../../../shared/utils';
import { useVirtualizerAnchor } from '../../../composables/useVirtualizerAnchor';
import Location from '../../../components/Location.vue';
@@ -162,11 +161,6 @@
transform: `translateY(${item.virtualItem.start}px)`
});
const { measureWithAnchor } = useVirtualizerAnchor({
virtualizer,
virtualRows,
scrollViewportRef
});
function getSmallGroupIconUrl(url) {
return convertFileUrlToImageUrl(url);
@@ -188,7 +182,7 @@
});
watch(virtualRows, () => {
measureWithAnchor(() => {
nextTick(() => {
virtualizer.value?.measure?.();
});
});