import React from 'react'; import { ACCESS_ROLE_IDS } from 'librechat-data-provider'; import type { AccessRole } from 'librechat-data-provider'; import { SelectDropDownPop } from '~/components/ui'; import { useGetAccessRolesQuery } from 'librechat-data-provider/react-query'; import { useLocalize } from '~/hooks'; interface AccessRolesPickerProps { resourceType?: string; selectedRoleId?: string; onRoleChange: (roleId: string) => void; className?: string; } export default function AccessRolesPicker({ resourceType = 'agent', selectedRoleId = ACCESS_ROLE_IDS.AGENT_VIEWER, onRoleChange, className = '', }: AccessRolesPickerProps) { const localize = useLocalize(); // Fetch access roles from API const { data: accessRoles, isLoading: rolesLoading } = useGetAccessRolesQuery(resourceType); // Helper function to get localized role name and description const getLocalizedRoleInfo = (roleId: string) => { switch (roleId) { case 'agent_viewer': return { name: localize('com_ui_role_viewer'), description: localize('com_ui_role_viewer_desc'), }; case 'agent_editor': return { name: localize('com_ui_role_editor'), description: localize('com_ui_role_editor_desc'), }; case 'agent_manager': return { name: localize('com_ui_role_manager'), description: localize('com_ui_role_manager_desc'), }; case 'agent_owner': return { name: localize('com_ui_role_owner'), description: localize('com_ui_role_owner_desc'), }; default: return { name: localize('com_ui_unknown'), description: localize('com_ui_unknown'), }; } }; // Find the currently selected role const selectedRole = accessRoles?.find((role) => role.accessRoleId === selectedRoleId); if (rolesLoading || !accessRoles) { return (