11 lines
588 B
TypeScript
11 lines
588 B
TypeScript
// Видимость пунктов меню по правам из `/me`. Прячет лишнее для удобства; доступ всё равно решает сервер.
|
|
|
|
export interface PermissionItem {
|
|
/** Право, без которого пункт не показывается; нет — пункт виден всем. */
|
|
permission?: string;
|
|
}
|
|
|
|
export function filterByPermission<T extends PermissionItem>(items: readonly T[], permissions: readonly string[]): T[] {
|
|
return items.filter((item) => !item.permission || permissions.includes(item.permission));
|
|
}
|