@@ -64,6 +64,7 @@ interface AddMembersModalProps {
6464 setSelectedMemberIds : React . Dispatch < React . SetStateAction < Set < string > > >
6565 onAddMembers : ( ) => void
6666 isAdding : boolean
67+ errorMessage : string | null
6768}
6869
6970function AddMembersModal ( {
@@ -74,6 +75,7 @@ function AddMembersModal({
7475 setSelectedMemberIds,
7576 onAddMembers,
7677 isAdding,
78+ errorMessage,
7779} : AddMembersModalProps ) {
7880 const [ searchTerm , setSearchTerm ] = useState ( '' )
7981
@@ -199,6 +201,9 @@ function AddMembersModal({
199201 </ div >
200202 </ div >
201203 ) }
204+ { errorMessage && (
205+ < p className = 'mt-3 text-[var(--text-destructive)] text-xs' > { errorMessage } </ p >
206+ ) }
202207 </ ModalBody >
203208 < ModalFooter >
204209 < Button
@@ -289,6 +294,7 @@ export function AccessControl() {
289294 const [ showConfigModal , setShowConfigModal ] = useState ( false )
290295 const [ editingConfig , setEditingConfig ] = useState < PermissionGroupConfig | null > ( null )
291296 const [ showAddMembersModal , setShowAddMembersModal ] = useState ( false )
297+ const [ addMembersError , setAddMembersError ] = useState < string | null > ( null )
292298 const [ selectedMemberIds , setSelectedMemberIds ] = useState < Set < string > > ( ( ) => new Set ( ) )
293299 const [ providerSearchTerm , setProviderSearchTerm ] = useState ( '' )
294300 const [ integrationSearchTerm , setIntegrationSearchTerm ] = useState ( '' )
@@ -628,11 +634,13 @@ export function AccessControl() {
628634
629635 const handleOpenAddMembersModal = useCallback ( ( ) => {
630636 setSelectedMemberIds ( new Set ( ) )
637+ setAddMembersError ( null )
631638 setShowAddMembersModal ( true )
632639 } , [ ] )
633640
634641 const handleAddSelectedMembers = useCallback ( async ( ) => {
635642 if ( ! viewingGroup || ! workspaceId || selectedMemberIds . size === 0 ) return
643+ setAddMembersError ( null )
636644 try {
637645 await bulkAddMembers . mutateAsync ( {
638646 workspaceId,
@@ -643,6 +651,9 @@ export function AccessControl() {
643651 setSelectedMemberIds ( new Set ( ) )
644652 } catch ( error ) {
645653 logger . error ( 'Failed to add members' , error )
654+ setAddMembersError (
655+ error instanceof Error && error . message ? error . message : 'Failed to add members'
656+ )
646657 }
647658 } , [ viewingGroup , workspaceId , selectedMemberIds , bulkAddMembers ] )
648659
@@ -1202,12 +1213,16 @@ export function AccessControl() {
12021213
12031214 < AddMembersModal
12041215 open = { showAddMembersModal }
1205- onOpenChange = { setShowAddMembersModal }
1216+ onOpenChange = { ( open ) => {
1217+ setShowAddMembersModal ( open )
1218+ if ( ! open ) setAddMembersError ( null )
1219+ } }
12061220 availableMembers = { availableMembersToAdd }
12071221 selectedMemberIds = { selectedMemberIds }
12081222 setSelectedMemberIds = { setSelectedMemberIds }
12091223 onAddMembers = { handleAddSelectedMembers }
12101224 isAdding = { bulkAddMembers . isPending }
1225+ errorMessage = { addMembersError }
12111226 />
12121227 </ >
12131228 )
0 commit comments