fix notification deletion UI update

This commit is contained in:
pa
2026-01-06 23:25:22 +09:00
committed by Natsumi
parent 12e65aeff8
commit 7f639f0040
5 changed files with 37 additions and 29 deletions

View File

@@ -110,9 +110,12 @@ export function useAuthenticatedLayoutResizable() {
resizeNavPanel(targetSize);
});
onMounted(() => {
navExpandedSize.value =
navPanelRef.value?.getSize?.() ?? navDefaultSize.value;
onMounted(async () => {
await nextTick();
let panelSize = null;
panelSize = navPanelRef.value?.getSize?.() ?? null;
navExpandedSize.value = panelSize ?? navDefaultSize.value;
if (isNavCollapsed.value) {
resizeNavPanel(navCollapsedSize.value);
}

View File

@@ -84,14 +84,14 @@ const expandedRow = ({ row }) => {
return (
<div class="pl-5 text-sm">
<div class="flex items-center">
<div class="inline-block align-top w-[160px]">
<div class="inline-block align-top w-40">
{original.previousCurrentAvatarThumbnailImageUrl ? (
<>
<img
src={
original.previousCurrentAvatarThumbnailImageUrl
}
class="x-link h-[120px] w-[160px] rounded"
class="x-link h-30 w-40 rounded"
loading="lazy"
/>
<br />

View File

@@ -26,7 +26,10 @@
<template v-if="isSideBarTabShow">
<ResizableHandle
with-handle
:class="isAsideCollapsed(layout) ? 'opacity-100' : 'opacity-0'"></ResizableHandle>
:class="[
isAsideCollapsed(layout) ? 'opacity-100' : 'opacity-0',
'z-20 [&>div]:-translate-x-1/2'
]"></ResizableHandle>
<ResizablePanel
:default-size="asideDefaultSize"
:max-size="asideMaxSize"

View File

@@ -96,7 +96,7 @@
useUserStore,
useVrcxStore
} from '../../stores';
import { convertFileUrlToImageUrl, escapeTag, parseLocation, removeFromArray } from '../../shared/utils';
import { convertFileUrlToImageUrl, escapeTag, parseLocation } from '../../shared/utils';
import { friendRequest, notificationRequest, worldRequest } from '../../api';
import { DataTableLayout } from '../../components/ui/data-table';
import { createColumns } from './columns.jsx';
@@ -174,25 +174,24 @@
const rawFilters = Array.isArray(notificationTable.value.filters) ? notificationTable.value.filters : [];
const activeFilters = rawFilters.filter((filter) => !isEmptyFilterValue(filter?.value));
const filtered =
activeFilters.length === 0
? rawData
: rawData.filter((row) => {
for (const filter of activeFilters) {
if (filter.filterFn) {
if (!filter.filterFn(row, filter)) {
return false;
}
continue;
}
if (!applyFilter(row, filter)) {
return false;
}
}
return true;
});
if (activeFilters.length === 0) {
return rawData.slice();
}
return filtered;
return rawData.filter((row) => {
for (const filter of activeFilters) {
if (filter.filterFn) {
if (!filter.filterFn(row, filter)) {
return false;
}
continue;
}
if (!applyFilter(row, filter)) {
return false;
}
}
return true;
});
});
const columns = createColumns({
@@ -468,7 +467,10 @@
}
function deleteNotificationLog(row) {
removeFromArray(notificationTable.value.data, row);
const idx = notificationTable.value.data.findIndex((e) => e.id === row.id);
if (idx !== -1) {
notificationTable.value.data.splice(idx, 1);
}
if (row.type !== 'friendRequest' && row.type !== 'ignoredFriendRequest') {
database.deleteNotification(row.id);
}

View File

@@ -395,7 +395,7 @@ export const createColumns = ({
}
return (
<Emoji
class="x-link h-[30px] w-[30px] rounded object-cover"
class="x-link h-7.5 w-7.5 rounded object-cover"
onClick={() => showFullscreenImageDialog(imageUrl)}
imageUrl={imageUrl}
size={30}
@@ -406,7 +406,7 @@ export const createColumns = ({
if (original.details?.imageUrl) {
return (
<img
class="x-link h-[30px] w-[30px] rounded object-cover"
class="x-link h-7.5 w-7.5 rounded object-cover"
src={getSmallThumbnailUrl(
original.details.imageUrl
)}
@@ -423,7 +423,7 @@ export const createColumns = ({
if (original.imageUrl) {
return (
<img
class="x-link h-[30px] w-[30px] rounded object-cover"
class="x-link h-7.5 w-7.5 rounded object-cover"
src={getSmallThumbnailUrl(original.imageUrl)}
onClick={() =>
showFullscreenImageDialog(original.imageUrl)