reroute
This commit is contained in:
42
src/components/category/categoryRoute.js
Normal file
42
src/components/category/categoryRoute.js
Normal file
@@ -0,0 +1,42 @@
|
||||
import {
|
||||
ROOT_CATEGORY_NAME,
|
||||
categorySlug,
|
||||
getCategoryBreadcrumbs,
|
||||
getCategoryChildren,
|
||||
} 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;
|
||||
}
|
||||
Reference in New Issue
Block a user