[READ-ONLY] a fast, modern browser for the npm registry
at main 26 lines 734 B view raw
1/** 2 * Creates a computed property that uses route query parameters by default, 3 * with an option to use local state instead. 4 */ 5export function usePermalink<T extends string = string>( 6 queryKey: string, 7 defaultValue: T = '' as T, 8 options: { permanent?: boolean } = {}, 9): WritableComputedRef<T> { 10 const { permanent = true } = options 11 const localValue = shallowRef<T>(defaultValue) 12 const routeValue = useRouteQuery<T>(queryKey, defaultValue) 13 14 const permalinkValue = computed({ 15 get: () => (permanent ? routeValue.value : localValue.value), 16 set: (value: T) => { 17 if (permanent) { 18 routeValue.value = value 19 } else { 20 localValue.value = value 21 } 22 }, 23 }) 24 25 return permalinkValue 26}