diff --git a/client/src/components/Sharing/GenericGrantAccessDialog.tsx b/client/src/components/Sharing/GenericGrantAccessDialog.tsx index cea0b3fe4a..3a1c7165af 100644 --- a/client/src/components/Sharing/GenericGrantAccessDialog.tsx +++ b/client/src/components/Sharing/GenericGrantAccessDialog.tsx @@ -196,7 +196,6 @@ export default function GenericGrantAccessDialog({ }); setHasChanges(false); - setIsModalOpen(false); } catch (error) { console.error('Error updating permissions:', error); showToast({ diff --git a/client/src/components/Sharing/PublicSharingToggle.tsx b/client/src/components/Sharing/PublicSharingToggle.tsx index eba2002b2d..5ede10f860 100644 --- a/client/src/components/Sharing/PublicSharingToggle.tsx +++ b/client/src/components/Sharing/PublicSharingToggle.tsx @@ -5,6 +5,16 @@ import { Switch, InfoHoverCard, ESide, Label } from '@librechat/client'; import type { AccessRoleIds } from 'librechat-data-provider'; import AccessRolesPicker from './AccessRolesPicker'; import { useLocalize } from '~/hooks'; +import { cn } from '~/utils'; + +interface PublicSharingToggleProps { + isPublic: boolean; + publicRole: AccessRoleIds; + onPublicToggle: (isPublic: boolean) => void; + onPublicRoleChange: (role: AccessRoleIds) => void; + resourceType?: ResourceType; + className?: string; +} export default function PublicSharingToggle({ isPublic, @@ -12,53 +22,98 @@ export default function PublicSharingToggle({ onPublicToggle, onPublicRoleChange, resourceType = ResourceType.AGENT, -}: { - isPublic: boolean; - publicRole: AccessRoleIds; - onPublicToggle: (isPublic: boolean) => void; - onPublicRoleChange: (role: AccessRoleIds) => void; - resourceType?: ResourceType; -}) { + className, +}: PublicSharingToggleProps) { const localize = useLocalize(); + const handleToggle = React.useCallback( + (checked: boolean) => { + onPublicToggle(checked); + }, + [onPublicToggle], + ); + return ( -
+
{/* Main toggle section */} -
-
- -
- - +
+
+
+
+ +
+
+ + +
+
-
- {/* Permission level section */} - {isPublic && ( -
+ {/* Permission level section with smooth animation */} +
+
- - +
+ +
+
+ +
+
+
+
-
- )} +
); }