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) {
lastActive = document.activeElement; if (browser) {
tick().then(() => { lastActive = document.activeElement;
panelEl?.focus(); tick().then(() => {
document.body.style.overflow = 'hidden'; panelEl?.focus();
}); document.body.style.overflow = 'hidden';
});
}
} else { } else {
document.body.style.overflow = ''; if (browser) {
if (lastActive instanceof HTMLElement) { document.body.style.overflow = '';
tick().then(() => lastActive?.focus()); if (lastActive instanceof HTMLElement) {
tick().then(() => lastActive?.focus());
}
} }
} }
onDestroy(() => { onDestroy(() => {
document.body.style.overflow = ''; if (browser) {
document.body.style.overflow = '';
}
}); });
</script> </script>

Loading…
Cancel
Save