diff --git a/src/components/ui/data-table/DataTableLayout.vue b/src/components/ui/data-table/DataTableLayout.vue
index 964ab515..f2d4eb3c 100644
--- a/src/components/ui/data-table/DataTableLayout.vue
+++ b/src/components/ui/data-table/DataTableLayout.vue
@@ -5,7 +5,7 @@
@@ -125,7 +125,6 @@
} from '../pagination';
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '../table';
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../select';
- import { ScrollArea } from '../scroll-area';
const props = defineProps({
table: {
@@ -256,7 +255,7 @@
const meta = columnDef?.meta ?? {};
const pinned = getPinnedState(header?.column);
return joinClasses(
- 'sticky top-0 bg-background relative group',
+ 'sticky top-0 bg-background dark:bg-sidebar border-b border-border group',
pinned ? 'z-30' : 'z-10',
isSpacer(header.column) && 'p-0',
resolveClassValue(meta.class, header?.getContext?.()),
diff --git a/src/styles/globals.css b/src/styles/globals.css
index 182c8f57..9c8be041 100644
--- a/src/styles/globals.css
+++ b/src/styles/globals.css
@@ -205,8 +205,7 @@
}
[data-slot='table-header'],
-[data-slot='table-header'] [data-slot='table-row'],
-[data-slot='table-head'] {
+[data-slot='table-header'] [data-slot='table-row'] {
background-color: transparent;
}
diff --git a/src/views/Favorites/FavoritesAvatar.vue b/src/views/Favorites/FavoritesAvatar.vue
index 3bca3a83..7a9a0131 100644
--- a/src/views/Favorites/FavoritesAvatar.vue
+++ b/src/views/Favorites/FavoritesAvatar.vue
@@ -150,7 +150,9 @@
-
+
{{ t('view.favorite.clear') }}
@@ -231,7 +233,9 @@
{{ t('view.favorite.avatars.check_invalid') }}
-
+
{{ t('view.favorite.delete_tooltip') }}
@@ -433,10 +437,7 @@
-
+
{
- return (group) => {
- const favorites = localAvatarFavorites.value[group];
- if (!favorites) {
- return [];
- }
- return favorites.slice(0, sliceLocalAvatarFavoritesLoadMoreNumber.value);
- };
- });
-
const activeRemoteGroup = computed(() => {
if (!isRemoteGroupSelected.value) {
return null;
@@ -848,7 +832,7 @@
if (!activeLocalGroupName.value) {
return [];
}
- return sliceLocalAvatarFavorites.value(activeLocalGroupName.value);
+ return localAvatarFavorites.value[activeLocalGroupName.value] || [];
});
const isAllAvatarsSelected = computed(() => {
@@ -886,11 +870,6 @@
if (active && avatarEditMode.value) {
avatarEditMode.value = false;
}
- if (!active) {
- nextTick(() => {
- maybeFillLocalAvatarViewport();
- });
- }
});
watch(
@@ -902,30 +881,6 @@
}
);
- watch(
- () => ({
- group: activeLocalGroupName.value,
- visible: currentLocalFavorites.value.length,
- total: activeLocalGroupCount.value,
- slice: sliceLocalAvatarFavoritesLoadMoreNumber.value,
- isLocal: isLocalGroupSelected.value
- }),
- () => {
- nextTick(() => {
- maybeFillLocalAvatarViewport();
- });
- }
- );
-
- onMounted(() => {
- if (typeof window !== 'undefined') {
- window.addEventListener('resize', maybeFillLocalAvatarViewport);
- }
- nextTick(() => {
- maybeFillLocalAvatarViewport();
- });
- });
-
function handleGroupMenuVisible(key, visible) {
if (visible) {
activeGroupMenu.value = key;
@@ -999,18 +954,7 @@
if (options.userInitiated) {
hasUserSelectedAvatarGroup.value = true;
}
- resetLoadMoreCounters();
clearSelectedAvatars();
- if (type === 'local') {
- nextTick(() => {
- maybeFillLocalAvatarViewport();
- });
- }
- }
-
- function resetLoadMoreCounters() {
- sliceLocalAvatarFavoritesLoadMoreNumber.value = 60;
- localAvatarLoadingMore.value = false;
}
function isGroupActive(type, key) {
@@ -1056,59 +1000,6 @@
});
}
- function handleLocalAvatarScroll() {
- if (!isLocalGroupSelected.value || isSearchActive.value) {
- return;
- }
- const wrap = localAvatarScrollbarRef.value?.viewportEl?.value;
- if (!wrap) {
- return;
- }
- const { scrollTop, clientHeight, scrollHeight } = wrap;
- if (scrollTop + clientHeight >= scrollHeight - LOCAL_AVATAR_SCROLL_THRESHOLD) {
- if (loadMoreLocalAvatarFavorites()) {
- nextTick(() => {
- maybeFillLocalAvatarViewport();
- });
- }
- }
- }
-
- function loadMoreLocalAvatarFavorites() {
- if (localAvatarLoadingMore.value) {
- return false;
- }
- if (sliceLocalAvatarFavoritesLoadMoreNumber.value >= activeLocalGroupCount.value) {
- return false;
- }
- localAvatarLoadingMore.value = true;
- sliceLocalAvatarFavoritesLoadMoreNumber.value += LOCAL_AVATAR_PAGE_SIZE;
- nextTick(() => {
- localAvatarLoadingMore.value = false;
- });
- return true;
- }
-
- function maybeFillLocalAvatarViewport() {
- nextTick(() => {
- if (!isLocalGroupSelected.value || isSearchActive.value) {
- return;
- }
- const wrap = localAvatarScrollbarRef.value?.viewportEl?.value;
- if (!wrap) {
- return;
- }
- if (wrap.scrollHeight > wrap.clientHeight + LOCAL_AVATAR_VIEWPORT_BUFFER) {
- return;
- }
- if (loadMoreLocalAvatarFavorites()) {
- nextTick(() => {
- maybeFillLocalAvatarViewport();
- });
- }
- });
- }
-
function toggleAvatarSelection(id, value) {
if (value) {
if (!selectedFavoriteAvatars.value.includes(id)) {
@@ -1119,58 +1010,6 @@
}
}
- function clearSelectedAvatars() {
- selectedFavoriteAvatars.value = [];
- }
-
- function toggleSelectAllAvatars() {
- if (!activeRemoteGroup.value) {
- return;
- }
- if (isAllAvatarsSelected.value) {
- selectedFavoriteAvatars.value = [];
- } else {
- selectedFavoriteAvatars.value = currentRemoteFavorites.value.map((fav) => fav.id);
- }
- }
-
- function copySelectedAvatars() {
- if (!selectedFavoriteAvatars.value.length) {
- return;
- }
- const idList = selectedFavoriteAvatars.value.map((id) => `${id}\n`).join('');
- avatarImportDialogInput.value = idList;
- showAvatarImportDialog();
- }
-
- async function showAvatarBulkUnfavoriteSelectionConfirm() {
- if (!selectedFavoriteAvatars.value.length) {
- return;
- }
- const total = selectedFavoriteAvatars.value.length;
-
- const result = await modalStore.confirm({
- description: `Are you sure you want to unfavorite ${total} favorites?\nThis action cannot be undone.`,
- title: `Trash2 ${total} favorites?`
- });
-
- if (!result.ok) {
- return;
- }
-
- bulkUnfavoriteSelectedAvatars([...selectedFavoriteAvatars.value]);
- }
-
- function bulkUnfavoriteSelectedAvatars(ids) {
- ids.forEach((id) => {
- favoriteRequest.deleteFavorite({
- objectId: id
- });
- });
- selectedFavoriteAvatars.value = [];
- avatarEditMode.value = false;
- }
-
function showAvatarExportDialog() {
avatarExportDialogVisible.value = true;
}
@@ -1525,9 +1364,6 @@
onBeforeUnmount(() => {
cancelLocalAvatarRefresh();
- if (typeof window !== 'undefined') {
- window.removeEventListener('resize', maybeFillLocalAvatarViewport);
- }
if (avatarSplitterObserver) {
avatarSplitterObserver.disconnect();
avatarSplitterObserver = null;
diff --git a/src/views/Favorites/FavoritesWorld.vue b/src/views/Favorites/FavoritesWorld.vue
index 40d8b3f0..e36cca70 100644
--- a/src/views/Favorites/FavoritesWorld.vue
+++ b/src/views/Favorites/FavoritesWorld.vue
@@ -138,7 +138,10 @@
{{ t('view.favorite.visibility_tooltip') }}
-
+
-
+
{{ t('view.favorite.clear') }}
@@ -227,7 +232,9 @@
{{ t('view.favorite.rename_tooltip') }}
-
+
{{ t('view.favorite.delete_tooltip') }}
@@ -374,9 +381,7 @@
+ class="favorites-content__scroll">
selectedFavoriteWorlds.value.length > 0);
const hasSearchInput = computed(() => worldFavoriteSearch.value.trim().length > 0);
const isSearchActive = computed(() => worldFavoriteSearch.value.trim().length >= 3);
@@ -723,16 +721,6 @@
return entries;
});
- const sliceLocalWorldFavorites = computed(() => {
- return (group) => {
- const favorites = localWorldFavorites.value[group];
- if (!favorites) {
- return [];
- }
- return favorites.slice(0, sliceLocalWorldFavoritesLoadMoreNumber.value);
- };
- });
-
const activeRemoteGroup = computed(() => {
if (!isRemoteGroupSelected.value) {
return null;
@@ -766,7 +754,7 @@
if (!activeLocalGroupName.value) {
return [];
}
- return sliceLocalWorldFavorites.value(activeLocalGroupName.value);
+ return localWorldFavorites.value[activeLocalGroupName.value] || [];
});
function handleSortFavoritesChange(value) {
@@ -807,11 +795,6 @@
if (active && worldEditMode.value) {
worldEditMode.value = false;
}
- if (!active) {
- nextTick(() => {
- maybeFillLocalFavoritesViewport();
- });
- }
});
watch(
@@ -823,29 +806,7 @@
}
);
- watch(
- () => ({
- group: activeLocalGroupName.value,
- visible: currentLocalFavorites.value.length,
- total: activeLocalGroupCount.value,
- slice: sliceLocalWorldFavoritesLoadMoreNumber.value,
- isLocal: isLocalGroupSelected.value
- }),
- () => {
- nextTick(() => {
- maybeFillLocalFavoritesViewport();
- });
- }
- );
-
- onMounted(() => {
- if (typeof window !== 'undefined') {
- window.addEventListener('resize', maybeFillLocalFavoritesViewport);
- }
- nextTick(() => {
- maybeFillLocalFavoritesViewport();
- });
- });
+ onMounted(() => {});
function handleGroupMenuVisible(key, visible) {
if (visible) {
@@ -916,18 +877,7 @@
if (options.userInitiated) {
hasUserSelectedWorldGroup.value = true;
}
- resetLocalFavoritesLoadMoreCounter();
clearSelectedWorlds();
- if (type === 'local') {
- nextTick(() => {
- maybeFillLocalFavoritesViewport();
- });
- }
- }
-
- function resetLocalFavoritesLoadMoreCounter() {
- sliceLocalWorldFavoritesLoadMoreNumber.value = 60;
- localFavoritesLoadingMore.value = false;
}
function isGroupActive(type, key) {
@@ -970,24 +920,6 @@
});
}
- function handleLocalFavoritesScroll() {
- if (!isLocalGroupSelected.value || isSearchActive.value) {
- return;
- }
- const wrap = localFavoritesScrollbarRef.value?.viewportEl?.value;
- if (!wrap) {
- return;
- }
- const { scrollTop, clientHeight, scrollHeight } = wrap;
- if (scrollTop + clientHeight >= scrollHeight - LOCAL_FAVORITES_SCROLL_THRESHOLD) {
- if (loadMoreLocalWorldFavorites()) {
- nextTick(() => {
- maybeFillLocalFavoritesViewport();
- });
- }
- }
- }
-
function toggleWorldSelection(id, value) {
if (value) {
if (!selectedFavoriteWorlds.value.includes(id)) {
@@ -1047,41 +979,6 @@
worldEditMode.value = false;
}
- function loadMoreLocalWorldFavorites() {
- if (localFavoritesLoadingMore.value) {
- return false;
- }
- if (sliceLocalWorldFavoritesLoadMoreNumber.value >= activeLocalGroupCount.value) {
- return false;
- }
- localFavoritesLoadingMore.value = true;
- sliceLocalWorldFavoritesLoadMoreNumber.value += LOCAL_FAVORITES_PAGE_SIZE;
- nextTick(() => {
- localFavoritesLoadingMore.value = false;
- });
- return true;
- }
-
- function maybeFillLocalFavoritesViewport() {
- nextTick(() => {
- if (!isLocalGroupSelected.value || isSearchActive.value) {
- return;
- }
- const wrap = localFavoritesScrollbarRef.value?.viewportEl?.value;
- if (!wrap) {
- return;
- }
- if (wrap.scrollHeight > wrap.clientHeight + LOCAL_FAVORITES_VIEWPORT_BUFFER) {
- return;
- }
- if (loadMoreLocalWorldFavorites()) {
- nextTick(() => {
- maybeFillLocalFavoritesViewport();
- });
- }
- });
- }
-
function showExportDialog() {
worldExportDialogVisible.value = true;
}
@@ -1306,9 +1203,6 @@
onBeforeUnmount(() => {
cancelLocalWorldRefresh();
- if (typeof window !== 'undefined') {
- window.removeEventListener('resize', maybeFillLocalFavoritesViewport);
- }
if (worldSplitterObserver) {
worldSplitterObserver.disconnect();
worldSplitterObserver = null;
diff --git a/src/views/Favorites/components/FavoritesAvatarItem.vue b/src/views/Favorites/components/FavoritesAvatarItem.vue
index adfe6085..1109f060 100644
--- a/src/views/Favorites/components/FavoritesAvatarItem.vue
+++ b/src/views/Favorites/components/FavoritesAvatarItem.vue
@@ -55,7 +55,7 @@
@@ -69,9 +69,9 @@
@@ -85,7 +85,7 @@
@@ -93,8 +93,8 @@
@@ -116,7 +116,7 @@
diff --git a/src/views/Favorites/components/FavoritesAvatarLocalHistoryItem.vue b/src/views/Favorites/components/FavoritesAvatarLocalHistoryItem.vue
index b259b805..69f02170 100644
--- a/src/views/Favorites/components/FavoritesAvatarLocalHistoryItem.vue
+++ b/src/views/Favorites/components/FavoritesAvatarLocalHistoryItem.vue
@@ -17,9 +17,9 @@
diff --git a/src/views/Favorites/components/FavoritesFriendItem.vue b/src/views/Favorites/components/FavoritesFriendItem.vue
index e060eef5..1595b396 100644
--- a/src/views/Favorites/components/FavoritesFriendItem.vue
+++ b/src/views/Favorites/components/FavoritesFriendItem.vue
@@ -36,8 +36,8 @@
@@ -50,8 +50,8 @@
diff --git a/src/views/Favorites/components/FavoritesWorldItem.vue b/src/views/Favorites/components/FavoritesWorldItem.vue
index 22a9332e..82850560 100644
--- a/src/views/Favorites/components/FavoritesWorldItem.vue
+++ b/src/views/Favorites/components/FavoritesWorldItem.vue
@@ -52,8 +52,8 @@
@@ -66,8 +66,8 @@
@@ -81,7 +81,7 @@
@@ -89,8 +89,8 @@
@@ -116,7 +116,7 @@
diff --git a/src/views/Favorites/components/FavoritesWorldLocalItem.vue b/src/views/Favorites/components/FavoritesWorldLocalItem.vue
index 4ddf23ca..ff507f02 100644
--- a/src/views/Favorites/components/FavoritesWorldLocalItem.vue
+++ b/src/views/Favorites/components/FavoritesWorldLocalItem.vue
@@ -35,7 +35,7 @@
@@ -48,8 +48,8 @@
@@ -63,7 +63,7 @@
@@ -71,8 +71,8 @@
diff --git a/src/views/Feed/Feed.vue b/src/views/Feed/Feed.vue
index f05a206b..2007fed5 100644
--- a/src/views/Feed/Feed.vue
+++ b/src/views/Feed/Feed.vue
@@ -11,7 +11,9 @@
-
+
+
+