diff --git a/packages/core/useUrlSearchParams/demo.vue b/packages/core/useUrlSearchParams/demo.vue new file mode 100644 index 00000000000..4d548bfdfdb --- /dev/null +++ b/packages/core/useUrlSearchParams/demo.vue @@ -0,0 +1,18 @@ + + + + diff --git a/packages/core/useUrlSearchParams/index.md b/packages/core/useUrlSearchParams/index.md index ac7acbb3b60..b5baaf4a6e0 100644 --- a/packages/core/useUrlSearchParams/index.md +++ b/packages/core/useUrlSearchParams/index.md @@ -11,7 +11,9 @@ Reactive [URLSearchParams](https://developer.mozilla.org/en-US/docs/Web/API/URLS ```html {19} @@ -22,6 +24,7 @@ export default { setup() { const params = useUrlSearchParams('history') params.foo = 'bar' + params.vueuse = 'awesome' return { params } } } @@ -48,7 +51,7 @@ export declare function useUrlSearchParams< ## Source -[Source](https://github.com/vueuse/vueuse/blob/main/packages/core/useUrlSearchParams/index.ts) • [Docs](https://github.com/vueuse/vueuse/blob/main/packages/core/useUrlSearchParams/index.md) +[Source](https://github.com/vueuse/vueuse/blob/main/packages/core/useUrlSearchParams/index.ts) • [Demo](https://github.com/vueuse/vueuse/blob/main/packages/core/useUrlSearchParams/demo.vue) • [Docs](https://github.com/vueuse/vueuse/blob/main/packages/core/useUrlSearchParams/index.md) diff --git a/packages/core/useUrlSearchParams/index.stories.tsx b/packages/core/useUrlSearchParams/index.stories.tsx deleted file mode 100644 index 42501c98907..00000000000 --- a/packages/core/useUrlSearchParams/index.stories.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import { defineComponent } from 'vue-demi' -import { defineDemo, html } from '../../_docs' -import { useUrlSearchParams } from '.' - -defineDemo( - { - name: 'useUrlSearchParams', - category: 'Browser', - docs: require('./index.md'), - module, - }, - defineComponent({ - setup() { - const params = useUrlSearchParams('history', { window: window.parent }) - params.foo = 'bar' - return { - params, - } - }, - - template: html` -
- -
- `, - }), -) diff --git a/packages/core/useUrlSearchParams/index.test.ts b/packages/core/useUrlSearchParams/index.test.ts index 1edab8acf00..3a15845b17e 100644 --- a/packages/core/useUrlSearchParams/index.test.ts +++ b/packages/core/useUrlSearchParams/index.test.ts @@ -30,6 +30,18 @@ describe('useUrlSearchParams', () => { 'history', 'hash', ]).describe('each mode', (mode: 'history' | 'hash') => { + test('return initial params', () => { + useSetup(() => { + if (mode === 'hash') + mockPopstate('', '#/test/?foo=bar') + else + mockPopstate('?foo=bar', '') + }) + + const params = useUrlSearchParams(mode) + expect(params.foo).toBe('bar') + }) + test('update params on poststate event', () => { useSetup(() => { const params = useUrlSearchParams(mode) diff --git a/packages/core/useUrlSearchParams/index.ts b/packages/core/useUrlSearchParams/index.ts index 334ab482193..53b4260e47a 100644 --- a/packages/core/useUrlSearchParams/index.ts +++ b/packages/core/useUrlSearchParams/index.ts @@ -85,5 +85,8 @@ export function useUrlSearchParams = UrlParams>( write(params, true) }) + // Update the paramsMap with initial values + write(params, true) + return paramsMap }