Files
ojnext/src/learn/store.ts
2023-04-18 15:11:13 +08:00

40 lines
805 B
TypeScript

import sidebar from "./menu.md?raw"
export const useLearnStore = defineStore("learn", () => {
const route = useRoute()
const router = useRouter()
const current = computed(() => {
if (!route.params.step || !route.params.step.length) return 1
else {
return parseInt(route.params.step[0].split("-")[1])
}
})
const menu: DropdownOption[] = sidebar
.split("\n")
.filter((title) => !!title)
.map((title: string, index) => {
return {
key: index + 1,
label: title,
props: {
onClick: () => {
router.push(`/learn/step-${index + 1}`)
},
},
}
})
function go(step: number) {
router.push(`/learn/step-${step}`)
}
return {
total: menu.length,
current,
menu,
go,
}
})