diff --git a/packages/ui/core-components/src/lib/atoms/inputs/button-group/ButtonGroup.svelte b/packages/ui/core-components/src/lib/atoms/inputs/button-group/ButtonGroup.svelte index 9bd2d2cfd6..9848096ba4 100644 --- a/packages/ui/core-components/src/lib/atoms/inputs/button-group/ButtonGroup.svelte +++ b/packages/ui/core-components/src/lib/atoms/inputs/button-group/ButtonGroup.svelte @@ -33,6 +33,7 @@ /** @type {string | undefined} */ export let defaultValue = undefined; + $: console.log(defaultValue, 'defaultValue'); setContext('button-display', display); @@ -46,11 +47,13 @@ const valueStore = writable(null); - hydrateFromUrlParam(name, (v) => (defaultValue = v)); + hydrateFromUrlParam(name, (v) => { + if (v) { + defaultValue = v; + } + }); setContext('button-group-defaultValue', writable(defaultValue)); - $: console.log(defaultValue, 'defaultValue'); - // TODO: Use getInputSetter instead setButtonGroupContext((v) => { $valueStore = v; diff --git a/packages/ui/core-components/src/lib/atoms/inputs/button-group/ButtonGroupItem.svelte b/packages/ui/core-components/src/lib/atoms/inputs/button-group/ButtonGroupItem.svelte index d184df39e0..447e2990cd 100644 --- a/packages/ui/core-components/src/lib/atoms/inputs/button-group/ButtonGroupItem.svelte +++ b/packages/ui/core-components/src/lib/atoms/inputs/button-group/ButtonGroupItem.svelte @@ -34,7 +34,7 @@ if ($buttonGroupDefaultValue === value || defaultValue === value) { update({ valueLabel, value }); - } else if (_default && !buttonGroupDefaultValue) { + } else if (_default && !$buttonGroupDefaultValue) { update({ valueLabel, value }); } diff --git a/packages/ui/core-components/src/lib/atoms/inputs/checkbox/Checkbox.stories.svelte b/packages/ui/core-components/src/lib/atoms/inputs/checkbox/Checkbox.stories.svelte index 975e5fdbb9..51c3de2ed9 100644 --- a/packages/ui/core-components/src/lib/atoms/inputs/checkbox/Checkbox.stories.svelte +++ b/packages/ui/core-components/src/lib/atoms/inputs/checkbox/Checkbox.stories.svelte @@ -15,6 +15,35 @@ import Checkbox from './Checkbox.svelte'; import { getInputContext } from '@evidence-dev/sdk/utils/svelte'; const inputStore = getInputContext(); + + let storyIframeURL = ''; + + const updateURL = () => { + storyIframeURL = window.location.href; + + // Try forcing Storybook to recognize the change + const iframe = document.querySelector('iframe'); + if (iframe) { + iframe.src = iframe.src; // Force reload + } + }; + + (function () { + const pushState = history.pushState; + const replaceState = history.replaceState; + + history.pushState = function () { + pushState.apply(history, arguments); + updateURL(); + }; + + history.replaceState = function () { + replaceState.apply(history, arguments); + updateURL(); + }; + + window.addEventListener('popstate', updateURL); + })(); @@ -33,3 +62,17 @@

{$inputStore.boolean_true}

+ + +

{$inputStore.string_true}

+ +

{$inputStore.boolean_true}

+ +
URL: {storyIframeURL}
+ +
diff --git a/packages/ui/core-components/src/lib/atoms/inputs/dropdown/Dropdown.svelte b/packages/ui/core-components/src/lib/atoms/inputs/dropdown/Dropdown.svelte index 68bb62c76f..371f6ea22d 100644 --- a/packages/ui/core-components/src/lib/atoms/inputs/dropdown/Dropdown.svelte +++ b/packages/ui/core-components/src/lib/atoms/inputs/dropdown/Dropdown.svelte @@ -99,7 +99,11 @@ : []; // hydrateFromUrlParam(name, (v) => (defaultValue = v)); - hydrateFromUrlParam(name, (v) => (defaultValue = v)); + hydrateFromUrlParam(name, (v) => { + if (v) { + defaultValue = v; + } + }); const state = dropdownOptionStore({ multiselect: multiple, diff --git a/packages/ui/core-components/src/lib/atoms/inputs/slider/Slider.stories.svelte b/packages/ui/core-components/src/lib/atoms/inputs/slider/Slider.stories.svelte index cd715fded1..b7f46490bd 100644 --- a/packages/ui/core-components/src/lib/atoms/inputs/slider/Slider.stories.svelte +++ b/packages/ui/core-components/src/lib/atoms/inputs/slider/Slider.stories.svelte @@ -169,7 +169,7 @@ }} /> - +
URL: {storyIframeURL}