mirror of
https://github.com/open-webui/open-webui.git
synced 2026-10-04 02:33:43 +00:00
perf(ui): lazy-load user info in channel profile previews on hover
This commit is contained in:
parent
b1d40f3409
commit
7b848defac
2 changed files with 13 additions and 8 deletions
|
|
@ -28,5 +28,5 @@
|
|||
</button>
|
||||
</LinkPreview.Trigger>
|
||||
|
||||
<UserStatusLinkPreview id={user?.id} {side} {align} {sideOffset} />
|
||||
<UserStatusLinkPreview id={user?.id} open={openPreview} {side} {align} {sideOffset} />
|
||||
</LinkPreview.Root>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<script lang="ts">
|
||||
import { getContext, onMount } from 'svelte';
|
||||
import { getContext } from 'svelte';
|
||||
import { LinkPreview } from 'bits-ui';
|
||||
|
||||
const i18n = getContext('i18n');
|
||||
|
|
@ -8,20 +8,25 @@
|
|||
import UserStatus from './UserStatus.svelte';
|
||||
|
||||
export let id = null;
|
||||
export let open = false;
|
||||
|
||||
export let side = 'top';
|
||||
export let align = 'start';
|
||||
export let sideOffset = 6;
|
||||
|
||||
let user = null;
|
||||
onMount(async () => {
|
||||
if (id) {
|
||||
user = await getUserInfoById(localStorage.token, id).catch((error) => {
|
||||
let fetched = false;
|
||||
|
||||
$: if (open && id && !fetched) {
|
||||
fetched = true;
|
||||
getUserInfoById(localStorage.token, id)
|
||||
.then((res) => {
|
||||
user = res;
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error('Error fetching user by ID:', error);
|
||||
return null;
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
{#if user}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue