fix: evitar uso de document en SSR en Popover.svelte

Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
webui
borja 2 weeks ago
parent f4632859e0
commit 2074c8ed0b

@ -1,6 +1,7 @@
<script lang="ts"> <script lang="ts">
import { tick, onDestroy } from 'svelte'; import { tick, onDestroy } from 'svelte';
import { createEventDispatcher } from 'svelte'; import { createEventDispatcher } from 'svelte';
import { browser } from '$app/environment';
export let open: boolean = false; export let open: boolean = false;
export let ariaLabel: string = 'Diálogo'; export let ariaLabel: string = 'Diálogo';
@ -47,20 +48,26 @@
} }
$: if (open) { $: if (open) {
if (browser) {
lastActive = document.activeElement; lastActive = document.activeElement;
tick().then(() => { tick().then(() => {
panelEl?.focus(); panelEl?.focus();
document.body.style.overflow = 'hidden'; document.body.style.overflow = 'hidden';
}); });
}
} else { } else {
if (browser) {
document.body.style.overflow = ''; document.body.style.overflow = '';
if (lastActive instanceof HTMLElement) { if (lastActive instanceof HTMLElement) {
tick().then(() => lastActive?.focus()); tick().then(() => lastActive?.focus());
} }
} }
}
onDestroy(() => { onDestroy(() => {
if (browser) {
document.body.style.overflow = ''; document.body.style.overflow = '';
}
}); });
</script> </script>

Loading…
Cancel
Save