diff --git a/src/UIShell/GlobalHeader/HeaderNavItem.svelte b/src/UIShell/GlobalHeader/HeaderNavItem.svelte
index fb48da11..d8219efc 100644
--- a/src/UIShell/GlobalHeader/HeaderNavItem.svelte
+++ b/src/UIShell/GlobalHeader/HeaderNavItem.svelte
@@ -16,6 +16,13 @@
/** Obtain a reference to the HTML anchor element */
export let ref = null;
+
+ import { getContext } from "svelte";
+
+ const id = "ccs-" + Math.random().toString(36);
+ const ctx = getContext("HeaderNavMenu");
+
+ $: if (ctx) ctx.updateSelectedItems({ id, isSelected });
diff --git a/src/UIShell/GlobalHeader/HeaderNavMenu.svelte b/src/UIShell/GlobalHeader/HeaderNavMenu.svelte
index 74334d5a..78c94858 100644
--- a/src/UIShell/GlobalHeader/HeaderNavMenu.svelte
+++ b/src/UIShell/GlobalHeader/HeaderNavMenu.svelte
@@ -14,7 +14,23 @@
/** Obtain a reference to the HTML anchor element */
export let ref = null;
+ import { setContext } from "svelte";
+ import { writable } from "svelte/store";
import ChevronDown16 from "../../icons/ChevronDown16.svelte";
+
+ const selectedItems = writable({});
+
+ setContext("HeaderNavMenu", {
+ updateSelectedItems(item) {
+ selectedItems.update((_items) => ({
+ ..._items,
+ [item.id]: item.isSelected,
+ }));
+ },
+ });
+
+ $: isCurrentSubmenu =
+ Object.values($selectedItems).filter(Boolean).length > 0;
-
+