@@ -89,40 +89,64 @@ function EditMemberDrawer({
8989 [ formatTimezoneAdjustedTimestamp ] ,
9090 ) ;
9191
92+ const saveInvitedMember = useCallback ( async ( ) : Promise < void > => {
93+ if ( ! member || ! inviteId ) {
94+ return ;
95+ }
96+ await cancelInvite ( { id : inviteId } ) ;
97+ try {
98+ await sendInvite ( {
99+ email : member . email ,
100+ name : displayName ,
101+ role : selectedRole ,
102+ frontendBaseUrl : window . location . origin ,
103+ } ) ;
104+ toast . success ( 'Invite updated successfully' , { richColors : true } ) ;
105+ onComplete ( ) ;
106+ onClose ( ) ;
107+ } catch {
108+ onRefetch ?.( ) ;
109+ onClose ( ) ;
110+ toast . error (
111+ 'Failed to send the updated invite. Please re-invite this member.' ,
112+ { richColors : true } ,
113+ ) ;
114+ }
115+ } , [
116+ member ,
117+ inviteId ,
118+ displayName ,
119+ selectedRole ,
120+ onComplete ,
121+ onClose ,
122+ onRefetch ,
123+ ] ) ;
124+
125+ const saveActiveMember = useCallback ( async ( ) : Promise < void > => {
126+ if ( ! member ) {
127+ return ;
128+ }
129+ await update ( {
130+ userId : member . id ,
131+ displayName,
132+ role : selectedRole ,
133+ } ) ;
134+ toast . success ( 'Member details updated successfully' , { richColors : true } ) ;
135+ onComplete ( ) ;
136+ onClose ( ) ;
137+ } , [ member , displayName , selectedRole , onComplete , onClose ] ) ;
138+
92139 const handleSave = useCallback ( async ( ) : Promise < void > => {
93140 if ( ! member || ! isDirty ) {
94141 return ;
95142 }
96143 setIsSaving ( true ) ;
97144 try {
98145 if ( isInvited && inviteId ) {
99- await cancelInvite ( { id : inviteId } ) ;
100- try {
101- await sendInvite ( {
102- email : member . email ,
103- name : displayName ,
104- role : selectedRole ,
105- frontendBaseUrl : window . location . origin ,
106- } ) ;
107- toast . success ( 'Invite updated successfully' , { richColors : true } ) ;
108- } catch {
109- onRefetch ?.( ) ;
110- onClose ( ) ;
111- toast . error (
112- 'Failed to send the updated invite. Please re-invite this member.' ,
113- { richColors : true } ,
114- ) ;
115- }
146+ await saveInvitedMember ( ) ;
116147 } else {
117- await update ( {
118- userId : member . id ,
119- displayName,
120- role : selectedRole ,
121- } ) ;
122- toast . success ( 'Member details updated successfully' , { richColors : true } ) ;
148+ await saveActiveMember ( ) ;
123149 }
124- onComplete ( ) ;
125- onClose ( ) ;
126150 } catch {
127151 toast . error (
128152 isInvited ? 'Failed to update invite' : 'Failed to update member details' ,
@@ -136,11 +160,8 @@ function EditMemberDrawer({
136160 isDirty ,
137161 isInvited ,
138162 inviteId ,
139- displayName ,
140- selectedRole ,
141- onComplete ,
142- onClose ,
143- onRefetch ,
163+ saveInvitedMember ,
164+ saveActiveMember ,
144165 ] ) ;
145166
146167 const handleDelete = useCallback ( async ( ) : Promise < void > => {
0 commit comments