magicbean-saas-common
Version:
MagicBean SasS Common Components
55 lines (46 loc) • 1.13 kB
text/typescript
import { Action, Mutation, Module, VuexModule } from "vuex-module-decorators";
import { Actions, Mutations } from "@/store/enums/StoreEnums";
interface BcnItem {
name: string;
path: string;
}
interface Breadcrumb {
title: string;
pageBreadcrumbPath: Array<BcnItem>;
}
interface StoreInfo {
breadcrumbs: Breadcrumb;
}
export default class BreadcrumbsModule extends VuexModule implements StoreInfo {
breadcrumbs = {} as Breadcrumb;
/**
* Get breadcrumb object for current page
* @returns object
*/
get getBreadcrumbs(): Breadcrumb {
return this.breadcrumbs;
}
/**
* Get breadcrumb array for current page
* @returns object
*/
get pageBreadcrumbPath(): Array<BcnItem> {
return this.breadcrumbs.pageBreadcrumbPath;
}
/**
* Get current page title
* @returns string
*/
get pageTitle(): string {
return this.breadcrumbs.title;
}
[Mutations.SET_BREADCRUMB_MUTATION](payload) {
this.breadcrumbs = payload;
}
[Actions.SET_BREADCRUMB_ACTION](payload) {
this.context.commit(Mutations.SET_BREADCRUMB_MUTATION, payload);
}
}