chat / client /src /utils /roles.ts
helloya20's picture
Upload 2345 files
f0743f4 verified
import type { AccessRoleIds } from 'librechat-data-provider';
import type { TranslationKeys } from '~/hooks/useLocalize';
/**
* Centralized mapping for role localizations
* Maps role IDs to their localization keys
*/
export const ROLE_LOCALIZATIONS = {
agent_viewer: {
name: 'com_ui_role_viewer' as const,
description: 'com_ui_role_viewer_desc' as const,
} as const,
agent_editor: {
name: 'com_ui_role_editor' as const,
description: 'com_ui_role_editor_desc' as const,
} as const,
agent_manager: {
name: 'com_ui_role_manager' as const,
description: 'com_ui_role_manager_desc' as const,
} as const,
agent_owner: {
name: 'com_ui_role_owner' as const,
description: 'com_ui_role_owner_desc' as const,
} as const,
// PromptGroup roles
promptGroup_viewer: {
name: 'com_ui_role_viewer' as const,
description: 'com_ui_role_viewer_desc' as const,
} as const,
promptGroup_editor: {
name: 'com_ui_role_editor' as const,
description: 'com_ui_role_editor_desc' as const,
} as const,
promptGroup_owner: {
name: 'com_ui_role_owner' as const,
description: 'com_ui_role_owner_desc' as const,
} as const,
};
/**
* Get localization keys for a given role ID
* @param roleId - The role ID to get localization keys for
* @returns Object with name and description localization keys, or unknown keys if not found
*/
export const getRoleLocalizationKeys = (
roleId: AccessRoleIds,
): {
name: TranslationKeys;
description: TranslationKeys;
} => {
return ROLE_LOCALIZATIONS[roleId] || { name: 'com_ui_unknown', description: 'com_ui_unknown' };
};