platform/packages/ui/src/components/FocusHandler.svelte
Andrey Sobolev 7621bccf22
UBER-1074: Svelte 4 (#4014)
Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
2023-11-20 17:01:43 +07:00

22 lines
424 B
Svelte

<script lang="ts">
import { FocusManager } from '../focus'
export let manager: FocusManager
export let isEnabled: boolean = true
function handleKey (evt: KeyboardEvent): void {
if (evt.code === 'Tab' && isEnabled) {
evt.preventDefault()
evt.stopPropagation()
manager.next(evt.shiftKey ? -1 : 1)
}
}
</script>
<svelte:window
on:keydown={(evt) => {
handleKey(evt)
}}
/>
<slot />