From dbfb2c227ecde2dafb390d71a0b1ac717e45ce9b Mon Sep 17 00:00:00 2001 From: Ryan Gossiaux Date: Wed, 15 Dec 2021 10:13:01 -0800 Subject: [PATCH] Move contexts over to useXContext model Fixes #4 --- src/lib/components/listbox/Listbox.svelte | 20 +++++++++++++++++-- .../components/listbox/ListboxButton.svelte | 5 +++-- .../components/listbox/ListboxLabel.svelte | 4 ++-- .../components/listbox/ListboxOption.svelte | 6 +++--- .../components/listbox/ListboxOptions.svelte | 5 +++-- src/lib/components/popover/Popover.svelte | 17 +++++++++++++++- .../components/popover/PopoverButton.svelte | 16 +++++++-------- .../components/popover/PopoverGroup.svelte | 9 +++++++-- .../components/popover/PopoverOverlay.svelte | 4 ++-- .../components/popover/PopoverPanel.svelte | 17 +++++++++++++--- src/lib/components/switch/Switch.svelte | 4 ++-- src/lib/components/switch/SwitchGroup.svelte | 9 ++++++++- 12 files changed, 85 insertions(+), 31 deletions(-) diff --git a/src/lib/components/listbox/Listbox.svelte b/src/lib/components/listbox/Listbox.svelte index eb28dd9..2aebe20 100644 --- a/src/lib/components/listbox/Listbox.svelte +++ b/src/lib/components/listbox/Listbox.svelte @@ -34,6 +34,22 @@ unregisterOption(id: string): void; select(value: unknown): void; }; + + const LISTBOX_CONTEXT_NAME = "ListboxContext"; + export function useListboxContext( + component: string + ): Writable { + let context: Writable | undefined = + getContext(LISTBOX_CONTEXT_NAME); + + if (context === undefined) { + throw new Error( + `<${component} /> is missing a parent component.` + ); + } + + return context; + }