All files useBreadcrumbs.js

0% Statements 0/14
0% Branches 0/13
0% Functions 0/3
0% Lines 0/14

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37                                                                         
import { computed } from "vue";
import { useData, useRoute } from "vitepress";
 
import { breadcrumbsForRoute, routeWithoutBase } from "./breadcrumbs.js";
 
/**
 * Resolve the current page's configured breadcrumb state.
 *
 * @returns {{crumbs: import("vue").ComputedRef, visible: import("vue").ComputedRef}} Breadcrumb state.
 */
export const useBreadcrumbs = () => {
    const route = useRoute();
    const { frontmatter, site, theme } = useData();
 
    const crumbs = computed(() => {
        if (frontmatter.value.layout === "home" || frontmatter.value.layout === false) {
            return [];
        }
        if (frontmatter.value.breadcrumbs === false) {
            return [];
        }
 
        const options = theme.value.breadcrumbs || {};
        return breadcrumbsForRoute(
            routeWithoutBase(route.path, site.value.base),
            options.routes || theme.value.routeTitles || {},
        );
    });
 
    const visible = computed(() => {
        const minimumDepth = theme.value.breadcrumbs?.minDepth ?? 2;
        return crumbs.value.length >= minimumDepth;
    });
 
    return { crumbs, visible };
};