Skip to content

Commit d764cd9

Browse files
committed
feat: keep versions modal options in query params
1 parent 85ac3d7 commit d764cd9

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

app/components/Package/Versions.vue

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,9 @@ function closeDistributionModal() {
6868
query: {
6969
...route.query,
7070
modal: undefined,
71+
grouping: undefined,
72+
recent: undefined,
73+
lowUsage: undefined,
7174
},
7275
})
7376

app/composables/useVersionDistribution.ts

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ interface ChartDataItem {
2121
* @returns Reactive state and computed chart data
2222
*/
2323
export function useVersionDistribution(packageName: MaybeRefOrGetter<string>) {
24-
const groupingMode = ref<VersionGroupingMode>('major')
25-
const showRecentOnly = ref(false)
26-
const showLowUsageVersions = ref(false)
24+
const groupingMode = useRouteQuery<VersionGroupingMode>('grouping', 'major', { mode: 'replace' })
25+
const showRecentOnly = useBooleanRouteQuery('recent', false)
26+
const showLowUsageVersions = useBooleanRouteQuery('lowUsage', false)
2727
const pending = ref(false)
2828
const error = ref<Error | null>(null)
2929
const data = ref<VersionDistributionResponse | null>(null)
@@ -173,3 +173,13 @@ export function useVersionDistribution(packageName: MaybeRefOrGetter<string>) {
173173
fetchDistribution,
174174
}
175175
}
176+
177+
function useBooleanRouteQuery(key: string, defaultValue = false) {
178+
return useRouteQuery(key, defaultValue ? 'true' : 'false', {
179+
transform: {
180+
get: (v: string) => v === 'true',
181+
set: (v: boolean) => (v ? 'true' : 'false'),
182+
},
183+
mode: 'replace',
184+
})
185+
}

0 commit comments

Comments
 (0)