42 lines
1.1 KiB
JavaScript
42 lines
1.1 KiB
JavaScript
import {
|
|
ROOT_CATEGORY_NAME,
|
|
categorySlug,
|
|
getCategoryBreadcrumbs,
|
|
} from '../../utils/categoryUtils';
|
|
|
|
export { ROOT_CATEGORY_NAME, categorySlug };
|
|
|
|
export const KATEGORIEN_BASE = '/kategorien';
|
|
|
|
export function isKategorienPath(pathname) {
|
|
return pathname === KATEGORIEN_BASE || pathname.startsWith(`${KATEGORIEN_BASE}/`);
|
|
}
|
|
|
|
function isRootSlug(slug) {
|
|
return slug === ROOT_CATEGORY_NAME;
|
|
}
|
|
|
|
export function categoryPathFromCrumbs(crumbs) {
|
|
const segments = (crumbs ?? [])
|
|
.filter((crumb) => crumb.slug && !isRootSlug(crumb.slug))
|
|
.map((crumb) => encodeURIComponent(crumb.slug));
|
|
if (segments.length === 0) {
|
|
return KATEGORIEN_BASE;
|
|
}
|
|
return `${KATEGORIEN_BASE}/${segments.join('/')}`;
|
|
}
|
|
|
|
export function buildCategoryPath(categories, rootCategoryId, categoryId) {
|
|
const crumbs = getCategoryBreadcrumbs(categories, categoryId, rootCategoryId);
|
|
return categoryPathFromCrumbs(crumbs);
|
|
}
|
|
|
|
export {
|
|
resolveCategoryIdFromSlugPath,
|
|
cleanCategorySlugPath,
|
|
} from '../../utils/categoryUtils';
|
|
|
|
export function defaultCategoryPath() {
|
|
return KATEGORIEN_BASE;
|
|
}
|