Files
svelte-headlessui/src/lib/components/popover/PopoverOverlay.svelte
Ryan Gossiaux db9ec57065 Initial commit with files
Still need to fix the imports
2021-12-13 17:13:47 -08:00

26 lines
778 B
Svelte

<script lang="ts">
import { State } from "./open-closed";
import { getContext } from "svelte";
import type { Writable } from "svelte/store";
import { PopoverStates, StateDefinition } from "./Popover.svelte";
let api: Writable<StateDefinition> | undefined = getContext("PopoverApi");
let openClosedState: Writable<State> | undefined = getContext("OpenClosed");
$: visible =
openClosedState !== undefined
? $openClosedState === State.Open
: $api.popoverState === PopoverStates.Open;
function handleClick() {
$api.closePopover();
}
</script>
{#if visible}
<div {...$$restProps} on:click={handleClick} aria-hidden>
<slot open={$api.popoverState === PopoverStates.Open} />
</div>
{/if}