File size: 1,623 Bytes
f0743f4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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' };
};