@@ -9,11 +9,32 @@ import { Button } from "@calcom/ui/components/button";
99import { DialogContent , DialogFooter } from "@calcom/ui/components/dialog" ;
1010import { Select } from "@calcom/ui/components/form" ;
1111
12+ import type { User } from "./MemberList" ;
13+
1214type MembershipRoleOption = {
1315 label : string ;
1416 value : MembershipRole ;
1517} ;
1618
19+ export const getUpdatedUser = (
20+ member : User ,
21+ role : MembershipRole | string ,
22+ customRoles : { id : string ; name : string } [ ] | undefined
23+ ) => {
24+ const isTraditionalRole = Object . values ( MembershipRole ) . includes ( role as MembershipRole ) ;
25+
26+ // Find the new custom role object if assigning a custom role
27+ const newCustomRole =
28+ ! isTraditionalRole && customRoles ? customRoles . find ( ( cr ) => cr . id === role ) || null : null ;
29+
30+ return {
31+ ...member ,
32+ role : isTraditionalRole ? ( role as MembershipRole ) : member . role ,
33+ customRoleId : isTraditionalRole ? null : ( role as string ) ,
34+ customRole : newCustomRole ,
35+ } ;
36+ } ;
37+
1738export const updateRoleInCache = ( {
1839 utils,
1940 teamId,
@@ -49,18 +70,7 @@ export const updateRoleInCache = ({
4970 ...page ,
5071 members : page . members . map ( ( member ) => {
5172 if ( member . id === memberId ) {
52- const isTraditionalRole = Object . values ( MembershipRole ) . includes ( role as MembershipRole ) ;
53-
54- // Find the new custom role object if assigning a custom role
55- const newCustomRole =
56- ! isTraditionalRole && customRoles ? customRoles . find ( ( cr ) => cr . id === role ) || null : null ;
57-
58- return {
59- ...member ,
60- role : isTraditionalRole ? ( role as MembershipRole ) : member . role ,
61- customRoleId : isTraditionalRole ? null : ( role as string ) ,
62- customRole : newCustomRole ,
63- } ;
73+ return getUpdatedUser ( member , role , customRoles ) ;
6474 }
6575 return member ;
6676 } ) ,
0 commit comments