diff --git a/code/renderers/vue3/src/render.test.ts b/code/renderers/vue3/src/render.test.ts index f4fb1c38a082..34d6e8666375 100644 --- a/code/renderers/vue3/src/render.test.ts +++ b/code/renderers/vue3/src/render.test.ts @@ -91,6 +91,12 @@ describe('Render Story', () => { expect(reactiveArgs).toEqual({ objectArg: { argFoo: 'bar' } }); }); + it('clears all args when nextArgs is empty -> updateArgs()', () => { + const reactiveArgs = reactive({ argFoo: 'foo', argBar: 'bar' }); + updateArgs(reactiveArgs, {} as any); + expect(reactiveArgs).toEqual({}); + }); + it('update reactive Globals', async () => { const reactiveGlobals = reactive({ theme: 'light', locale: 'en' }); diff --git a/code/renderers/vue3/src/render.ts b/code/renderers/vue3/src/render.ts index b671e0a82861..e16dcb6b0a75 100644 --- a/code/renderers/vue3/src/render.ts +++ b/code/renderers/vue3/src/render.ts @@ -153,9 +153,6 @@ export function updateArgs< [name: string]: unknown; }, >(reactiveArgs: T, nextArgs: T) { - if (Object.keys(nextArgs).length === 0) { - return; - } const currentArgs = isReactive(reactiveArgs) ? reactiveArgs : reactive(reactiveArgs); // delete all args in currentArgs that are not in nextArgs Object.keys(currentArgs).forEach((key) => {