Portal/rsconcept/frontend/src/features/library/labels.ts

48 lines
1.5 KiB
TypeScript
Raw Normal View History

2025-02-11 20:56:11 +03:00
import { FolderNode } from './models/FolderTree';
import { LocationHead } from './models/library';
import { validateLocation } from './models/libraryAPI';
/**
* Retrieves label for {@link LocationHead}.
*/
export function labelLocationHead(head: LocationHead): string {
// prettier-ignore
switch (head) {
case LocationHead.USER: return '/U : личные';
case LocationHead.COMMON: return '/S : общие';
case LocationHead.LIBRARY: return '/L : примеры';
case LocationHead.PROJECTS: return '/P : проекты';
}
}
/**
* Retrieves description for {@link LocationHead}.
*/
export function describeLocationHead(head: LocationHead): string {
// prettier-ignore
switch (head) {
case LocationHead.USER: return 'Личные схемы пользователя';
case LocationHead.COMMON: return 'Рабочий каталог публичных схем';
case LocationHead.LIBRARY: return 'Каталог неизменных схем-примеров';
case LocationHead.PROJECTS: return 'Рабочий каталог проектных схем';
}
}
/**
* Retrieves label for {@link FolderNode}.
*/
export function labelFolderNode(node: FolderNode): string {
if (node.parent || !validateLocation('/' + node.text)) {
return node.text;
} else {
return labelLocationHead(('/' + node.text) as LocationHead);
}
}
/**
* Retrieves description for {@link FolderNode}.
*/
export function describeFolderNode(node: FolderNode): string {
return `${node.filesInside} | ${node.filesTotal}`;
}