@refinedev/core
Version:
Refine is a React meta-framework for building enterprise-level, data-intensive applications rapidly with support for modern UI libraries and headless integrations.
32 lines (26 loc) • 790 B
text/typescript
import type { ResourceProps } from "../../../contexts/resource/types";
import { getParentResource } from "./get-parent-resource";
import { removeLeadingTrailingSlashes } from "./remove-leading-trailing-slashes";
/**
* Returns the parent prefix for a resource
*/
export const getParentPrefixForResource = (
resource: ResourceProps,
resources: ResourceProps[],
): string | undefined => {
const parents: ResourceProps[] = [];
let parent = getParentResource(resource, resources);
while (parent) {
parents.push(parent);
parent = getParentResource(parent, resources);
}
if (parents.length === 0) {
return undefined;
}
return `/${parents
.reverse()
.map((parent) => {
return removeLeadingTrailingSlashes(parent.name);
})
.join("/")}`;
};