Move contexts over to useXContext model

Fixes #4
This commit is contained in:
Ryan Gossiaux
2021-12-15 10:13:01 -08:00
parent f1edb17609
commit dbfb2c227e
12 changed files with 85 additions and 31 deletions

View File

@@ -1,5 +1,5 @@
<script lang="ts">
import type { StateDefinition } from "./SwitchGroup.svelte";
import { useSwitchContext } from "./SwitchGroup.svelte";
import type { LabelContext } from "$lib/components/label/LabelProvider.svelte";
import type { DescriptionContext } from "$lib/components/description/DescriptionProvider.svelte";
import { useId } from "$lib/hooks/use-id";
@@ -9,7 +9,7 @@
const dispatch = createEventDispatcher();
export let checked = false;
let api: Writable<StateDefinition> | undefined = getContext("SwitchApi");
let api = useSwitchContext();
let labelContext: Writable<LabelContext> | undefined = getContext(
"headlessui-label-context"
);

View File

@@ -2,12 +2,19 @@
export interface StateDefinition {
switchStore: Writable<HTMLButtonElement | null>;
}
const SWITCH_CONTEXT_NAME = "SwitchContext";
export function useSwitchContext():
| Writable<StateDefinition | undefined>
| undefined {
return getContext(SWITCH_CONTEXT_NAME);
}
</script>
<script lang="ts">
import DescriptionProvider from "./DescriptionProvider.svelte";
import LabelProvider from "./LabelProvider.svelte";
import { setContext } from "svelte";
import { getContext, setContext } from "svelte";
import { Writable, writable } from "svelte/store";
let switchStore: Writable<HTMLButtonElement | null> = writable(null);