fix: update queryParams
This commit is contained in:
		
							parent
							
								
									8219e4759a
								
							
						
					
					
						commit
						90556e8e73
					
				
							
								
								
									
										49
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										49
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							| @ -11,6 +11,9 @@ dependencies: | |||||||
|   '@it-tools/oggen': |   '@it-tools/oggen': | ||||||
|     specifier: ^1.3.0 |     specifier: ^1.3.0 | ||||||
|     version: 1.3.0 |     version: 1.3.0 | ||||||
|  |   '@plurimath/plurimath': | ||||||
|  |     specifier: ^0.2.0 | ||||||
|  |     version: 0.2.0 | ||||||
|   '@sindresorhus/slugify': |   '@sindresorhus/slugify': | ||||||
|     specifier: ^2.2.1 |     specifier: ^2.2.1 | ||||||
|     version: 2.2.1 |     version: 2.2.1 | ||||||
| @ -23,6 +26,9 @@ dependencies: | |||||||
|   '@tiptap/vue-3': |   '@tiptap/vue-3': | ||||||
|     specifier: 2.0.3 |     specifier: 2.0.3 | ||||||
|     version: 2.0.3(@tiptap/core@2.1.12)(@tiptap/pm@2.1.6)(vue@3.3.4) |     version: 2.0.3(@tiptap/core@2.1.12)(@tiptap/pm@2.1.6)(vue@3.3.4) | ||||||
|  |   '@types/figlet': | ||||||
|  |     specifier: ^1.5.8 | ||||||
|  |     version: 1.5.8 | ||||||
|   '@vicons/material': |   '@vicons/material': | ||||||
|     specifier: ^0.12.0 |     specifier: ^0.12.0 | ||||||
|     version: 0.12.0 |     version: 0.12.0 | ||||||
| @ -71,6 +77,9 @@ dependencies: | |||||||
|   emojilib: |   emojilib: | ||||||
|     specifier: ^3.0.10 |     specifier: ^3.0.10 | ||||||
|     version: 3.0.10 |     version: 3.0.10 | ||||||
|  |   figlet: | ||||||
|  |     specifier: ^1.7.0 | ||||||
|  |     version: 1.7.0 | ||||||
|   figue: |   figue: | ||||||
|     specifier: ^1.2.0 |     specifier: ^1.2.0 | ||||||
|     version: 1.2.0 |     version: 1.2.0 | ||||||
| @ -86,6 +95,9 @@ dependencies: | |||||||
|   ibantools: |   ibantools: | ||||||
|     specifier: ^4.3.3 |     specifier: ^4.3.3 | ||||||
|     version: 4.3.3 |     version: 4.3.3 | ||||||
|  |   js-base64: | ||||||
|  |     specifier: ^3.7.6 | ||||||
|  |     version: 3.7.7 | ||||||
|   json5: |   json5: | ||||||
|     specifier: ^2.2.3 |     specifier: ^2.2.3 | ||||||
|     version: 2.2.3 |     version: 2.2.3 | ||||||
| @ -2451,6 +2463,10 @@ packages: | |||||||
|       fsevents: 2.3.2 |       fsevents: 2.3.2 | ||||||
|     dev: true |     dev: true | ||||||
| 
 | 
 | ||||||
|  |   /@plurimath/plurimath@0.2.0: | ||||||
|  |     resolution: {integrity: sha512-5ca7O58sq/PHA7zZHDjDrg8pr1u9FPRNWOy8nqADKrExw9LHAwHX2FuvU3sz51liNZpwZ1KC5Nwy5U48S6Y5Xw==} | ||||||
|  |     dev: false | ||||||
|  | 
 | ||||||
|   /@polka/url@1.0.0-next.21: |   /@polka/url@1.0.0-next.21: | ||||||
|     resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} |     resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} | ||||||
|     dev: true |     dev: true | ||||||
| @ -2902,6 +2918,10 @@ packages: | |||||||
|   /@types/estree@1.0.0: |   /@types/estree@1.0.0: | ||||||
|     resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} |     resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} | ||||||
| 
 | 
 | ||||||
|  |   /@types/figlet@1.5.8: | ||||||
|  |     resolution: {integrity: sha512-G22AUvy4Tl95XLE7jmUM8s8mKcoz+Hr+Xm9W90gJsppJq9f9tHvOGkrpn4gRX0q/cLtBdNkWtWCKDg2UDZoZvQ==} | ||||||
|  |     dev: false | ||||||
|  | 
 | ||||||
|   /@types/fs-extra@11.0.1: |   /@types/fs-extra@11.0.1: | ||||||
|     resolution: {integrity: sha512-MxObHvNl4A69ofaTRU8DFqvgzzv8s9yRtaPPm5gud9HDNvpB3GPQFvNuTWAI59B9huVGV5jXYJwbCsmBsOGYWA==} |     resolution: {integrity: sha512-MxObHvNl4A69ofaTRU8DFqvgzzv8s9yRtaPPm5gud9HDNvpB3GPQFvNuTWAI59B9huVGV5jXYJwbCsmBsOGYWA==} | ||||||
|     dependencies: |     dependencies: | ||||||
| @ -3341,7 +3361,7 @@ packages: | |||||||
|     dependencies: |     dependencies: | ||||||
|       '@unhead/dom': 0.5.1 |       '@unhead/dom': 0.5.1 | ||||||
|       '@unhead/schema': 0.5.1 |       '@unhead/schema': 0.5.1 | ||||||
|       '@vueuse/shared': 10.7.2(vue@3.3.4) |       '@vueuse/shared': 10.11.0(vue@3.3.4) | ||||||
|       unhead: 0.5.1 |       unhead: 0.5.1 | ||||||
|       vue: 3.3.4 |       vue: 3.3.4 | ||||||
|     transitivePeerDependencies: |     transitivePeerDependencies: | ||||||
| @ -3974,19 +3994,19 @@ packages: | |||||||
|       - vue |       - vue | ||||||
|     dev: false |     dev: false | ||||||
| 
 | 
 | ||||||
|   /@vueuse/shared@10.3.0(vue@3.3.4): |   /@vueuse/shared@10.11.0(vue@3.3.4): | ||||||
|     resolution: {integrity: sha512-kGqCTEuFPMK4+fNWy6dUOiYmxGcUbtznMwBZLC1PubidF4VZY05B+Oht7Jh7/6x4VOWGpvu3R37WHi81cKpiqg==} |     resolution: {integrity: sha512-fyNoIXEq3PfX1L3NkNhtVQUSRtqYwJtJg+Bp9rIzculIZWHTkKSysujrOk2J+NrRulLTQH9+3gGSfYLWSEWU1A==} | ||||||
|     dependencies: |     dependencies: | ||||||
|       vue-demi: 0.14.5(vue@3.3.4) |       vue-demi: 0.14.8(vue@3.3.4) | ||||||
|     transitivePeerDependencies: |     transitivePeerDependencies: | ||||||
|       - '@vue/composition-api' |       - '@vue/composition-api' | ||||||
|       - vue |       - vue | ||||||
|     dev: false |     dev: false | ||||||
| 
 | 
 | ||||||
|   /@vueuse/shared@10.7.2(vue@3.3.4): |   /@vueuse/shared@10.3.0(vue@3.3.4): | ||||||
|     resolution: {integrity: sha512-qFbXoxS44pi2FkgFjPvF4h7c9oMDutpyBdcJdMYIMg9XyXli2meFMuaKn+UMgsClo//Th6+beeCgqweT/79BVA==} |     resolution: {integrity: sha512-kGqCTEuFPMK4+fNWy6dUOiYmxGcUbtznMwBZLC1PubidF4VZY05B+Oht7Jh7/6x4VOWGpvu3R37WHi81cKpiqg==} | ||||||
|     dependencies: |     dependencies: | ||||||
|       vue-demi: 0.14.6(vue@3.3.4) |       vue-demi: 0.14.5(vue@3.3.4) | ||||||
|     transitivePeerDependencies: |     transitivePeerDependencies: | ||||||
|       - '@vue/composition-api' |       - '@vue/composition-api' | ||||||
|       - vue |       - vue | ||||||
| @ -5585,6 +5605,12 @@ packages: | |||||||
|       web-streams-polyfill: 3.2.1 |       web-streams-polyfill: 3.2.1 | ||||||
|     dev: true |     dev: true | ||||||
| 
 | 
 | ||||||
|  |   /figlet@1.7.0: | ||||||
|  |     resolution: {integrity: sha512-gO8l3wvqo0V7wEFLXPbkX83b7MVjRrk1oRLfYlZXol8nEpb/ON9pcKLI4qpBv5YtOTfrINtqb7b40iYY2FTWFg==} | ||||||
|  |     engines: {node: '>= 0.4.0'} | ||||||
|  |     hasBin: true | ||||||
|  |     dev: false | ||||||
|  | 
 | ||||||
|   /figue@1.2.0: |   /figue@1.2.0: | ||||||
|     resolution: {integrity: sha512-CXKr12kiNWjKtUK3X+YHeXKepn80s9Rg6pgZXoLQYEybgwaGJ9uGW4DrBrVK30ZWZf1mcvTbXF56AcovG7gLVw==} |     resolution: {integrity: sha512-CXKr12kiNWjKtUK3X+YHeXKepn80s9Rg6pgZXoLQYEybgwaGJ9uGW4DrBrVK30ZWZf1mcvTbXF56AcovG7gLVw==} | ||||||
|     dependencies: |     dependencies: | ||||||
| @ -6456,6 +6482,10 @@ packages: | |||||||
|     hasBin: true |     hasBin: true | ||||||
|     dev: true |     dev: true | ||||||
| 
 | 
 | ||||||
|  |   /js-base64@3.7.7: | ||||||
|  |     resolution: {integrity: sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==} | ||||||
|  |     dev: false | ||||||
|  | 
 | ||||||
|   /js-beautify@1.14.6: |   /js-beautify@1.14.6: | ||||||
|     resolution: {integrity: sha512-GfofQY5zDp+cuHc+gsEXKPpNw2KbPddreEo35O6jT6i0RVK6LhsoYBhq5TvK4/n74wnA0QbK8gGd+jUZwTMKJw==} |     resolution: {integrity: sha512-GfofQY5zDp+cuHc+gsEXKPpNw2KbPddreEo35O6jT6i0RVK6LhsoYBhq5TvK4/n74wnA0QbK8gGd+jUZwTMKJw==} | ||||||
|     engines: {node: '>=10'} |     engines: {node: '>=10'} | ||||||
| @ -9135,8 +9165,8 @@ packages: | |||||||
|       vue: 3.3.4 |       vue: 3.3.4 | ||||||
|     dev: false |     dev: false | ||||||
| 
 | 
 | ||||||
|   /vue-demi@0.14.6(vue@3.3.4): |   /vue-demi@0.14.8(vue@3.3.4): | ||||||
|     resolution: {integrity: sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==} |     resolution: {integrity: sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==} | ||||||
|     engines: {node: '>=12'} |     engines: {node: '>=12'} | ||||||
|     hasBin: true |     hasBin: true | ||||||
|     requiresBuild: true |     requiresBuild: true | ||||||
| @ -9426,6 +9456,7 @@ packages: | |||||||
| 
 | 
 | ||||||
|   /workbox-google-analytics@7.0.0: |   /workbox-google-analytics@7.0.0: | ||||||
|     resolution: {integrity: sha512-MEYM1JTn/qiC3DbpvP2BVhyIH+dV/5BjHk756u9VbwuAhu0QHyKscTnisQuz21lfRpOwiS9z4XdqeVAKol0bzg==} |     resolution: {integrity: sha512-MEYM1JTn/qiC3DbpvP2BVhyIH+dV/5BjHk756u9VbwuAhu0QHyKscTnisQuz21lfRpOwiS9z4XdqeVAKol0bzg==} | ||||||
|  |     deprecated: It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained | ||||||
|     dependencies: |     dependencies: | ||||||
|       workbox-background-sync: 7.0.0 |       workbox-background-sync: 7.0.0 | ||||||
|       workbox-core: 7.0.0 |       workbox-core: 7.0.0 | ||||||
|  | |||||||
| @ -17,6 +17,12 @@ const transformers = { | |||||||
|     fromQuery: (value: string) => value.toLowerCase() === 'true', |     fromQuery: (value: string) => value.toLowerCase() === 'true', | ||||||
|     toQuery: (value: boolean) => (value ? 'true' : 'false'), |     toQuery: (value: boolean) => (value ? 'true' : 'false'), | ||||||
|   }, |   }, | ||||||
|  |   object: { | ||||||
|  |     fromQuery: (value: string) => { | ||||||
|  |       return JSON.parse(value); | ||||||
|  |     }, | ||||||
|  |     toQuery: (value: object) => JSON.stringify(value), | ||||||
|  |   }, | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| function useQueryParam<T>({ name, defaultValue }: { name: string; defaultValue: T }) { | function useQueryParam<T>({ name, defaultValue }: { name: string; defaultValue: T }) { | ||||||
| @ -35,30 +41,26 @@ function useQueryParam<T>({ name, defaultValue }: { name: string; defaultValue: | |||||||
|   }); |   }); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| function useQueryParamOrStorage<T>({ name, storageName, defaultValue }: { name: string; storageName: string; defaultValue?: T }) { | function useQueryParamOrStorage<T>({ name, storageName, defaultValue }: { name: string; storageName: string; defaultValue: T }) { | ||||||
|   const type = typeof defaultValue; |   const type = typeof defaultValue; | ||||||
|   const transformer = transformers[type as keyof typeof transformers] ?? transformers.string; |   const transformer = transformers[type as keyof typeof transformers] ?? transformers.string; | ||||||
| 
 | 
 | ||||||
|   const storageRef = useStorage(storageName, defaultValue); |   const storageRef = useStorage(storageName, defaultValue); | ||||||
|   const storageDefaultValue = storageRef.value ?? defaultValue; |   const proxyDefaultValue = transformer.toQuery(defaultValue as never); | ||||||
|  |   const proxy = useRouteQuery(name, proxyDefaultValue); | ||||||
| 
 | 
 | ||||||
|   const proxy = useRouteQuery(name, transformer.toQuery(storageDefaultValue as never)); |   const r = ref(defaultValue); | ||||||
| 
 | 
 | ||||||
|   const ref = computed<T>({ |   watch(r, | ||||||
|     get() { |     (value) => { | ||||||
|       return transformer.fromQuery(proxy.value) as unknown as T; |  | ||||||
|     }, |  | ||||||
|     set(value) { |  | ||||||
|       proxy.value = transformer.toQuery(value as never); |       proxy.value = transformer.toQuery(value as never); | ||||||
|  |       storageRef.value = value as never; | ||||||
|     }, |     }, | ||||||
|   }); |     { deep: true }); | ||||||
| 
 | 
 | ||||||
|   watch( |   r.value = (proxy.value && proxy.value !== proxyDefaultValue | ||||||
|     ref, |     ? transformer.fromQuery(proxy.value) as unknown as T | ||||||
|     (newValue) => { |     : storageRef.value as T) as never; | ||||||
|       storageRef.value = newValue; |  | ||||||
|     }, |  | ||||||
|   ); |  | ||||||
| 
 | 
 | ||||||
|   return ref; |   return r; | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user