You've already forked AstralRinth
forked from didirus/AstralRinth
* refactor: migrate to common eslint+prettier configs * fix: prettier frontend * feat: config changes * fix: lint issues * fix: lint * fix: type imports * fix: cyclical import issue * fix: lockfile * fix: missing dep * fix: switch to tabs * fix: continue switch to tabs * fix: rustfmt parity * fix: moderation lint issue * fix: lint issues * fix: ui intl * fix: lint issues * Revert "fix: rustfmt parity" This reverts commit cb99d2376c321d813d4b7fc7e2a213bb30a54711. * feat: revert last rs
38 lines
967 B
JavaScript
38 lines
967 B
JavaScript
import { defineStore } from 'pinia'
|
|
|
|
export const useBreadcrumbs = defineStore('breadcrumbsStore', {
|
|
state: () => ({
|
|
names: new Map(),
|
|
context: null,
|
|
rootContext: null,
|
|
}),
|
|
actions: {
|
|
getName(route) {
|
|
return this.names.get(route) ?? ''
|
|
},
|
|
setName(route, title) {
|
|
this.names.set(route, title)
|
|
},
|
|
// resets breadcrumbs to only included ones as to not have stale breadcrumbs
|
|
resetToNames(breadcrumbs) {
|
|
if (!breadcrumbs) return
|
|
// names is an array of every breadcrumb.name that starts with a ?
|
|
const names = breadcrumbs
|
|
.filter((breadcrumb) => breadcrumb.name.charAt(0) === '?')
|
|
.map((breadcrumb) => breadcrumb.name.slice(1))
|
|
// remove all names that are not in the names array
|
|
for (const [route] of this.names) {
|
|
if (!names.includes(route)) {
|
|
this.names.delete(route)
|
|
}
|
|
}
|
|
},
|
|
setContext(context) {
|
|
this.context = context
|
|
},
|
|
setRootContext(context) {
|
|
this.rootContext = context
|
|
},
|
|
},
|
|
})
|