Skip to content

Commit c28b4c2

Browse files
authoredFeb 12, 2024··
feat(ui): save splitpanes size to local storage (#5166)
1 parent 38f7932 commit c28b4c2

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed
 

‎packages/ui/client/pages/index.vue

+12-8
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,32 @@ import { Pane, Splitpanes } from 'splitpanes'
44
import { coverageUrl, coverageVisible, initializeNavigation } from '../composables/navigation'
55
66
const dashboardVisible = initializeNavigation()
7-
const mainSizes = reactive([33, 67])
8-
const detailSizes = reactive([33, 67])
7+
const mainSizes = useLocalStorage<[left: number, right: number]>('vitest-ui_splitpanes-mainSizes', [33, 67], {
8+
initOnMounted: true,
9+
})
10+
const detailSizes = useLocalStorage<[left: number, right: number]>('vitest-ui_splitpanes-detailSizes', [33, 67], {
11+
initOnMounted: true,
12+
})
913
1014
const onMainResized = useDebounceFn((event: { size: number }[]) => {
1115
event.forEach((e, i) => {
12-
mainSizes[i] = e.size
16+
mainSizes.value[i] = e.size
1317
})
1418
}, 0)
1519
const onModuleResized = useDebounceFn((event: { size: number }[]) => {
1620
event.forEach((e, i) => {
17-
detailSizes[i] = e.size
21+
detailSizes.value[i] = e.size
1822
})
1923
}, 0)
2024
2125
function resizeMain() {
2226
const width = window.innerWidth
2327
const panelWidth = Math.min(width / 3, 300)
24-
mainSizes[0] = (100 * panelWidth) / width
25-
mainSizes[1] = 100 - mainSizes[0]
28+
mainSizes.value[0] = (100 * panelWidth) / width
29+
mainSizes.value[1] = 100 - mainSizes.value[0]
2630
// initialize suite width with the same navigation panel width in pixels (adjust its % inside detail's split pane)
27-
detailSizes[0] = (100 * panelWidth) / (width - panelWidth)
28-
detailSizes[1] = 100 - detailSizes[0]
31+
detailSizes.value[0] = (100 * panelWidth) / (width - panelWidth)
32+
detailSizes.value[1] = 100 - detailSizes.value[0]
2933
}
3034
</script>
3135

0 commit comments

Comments
 (0)
Please sign in to comment.