@ -73,7 +73,8 @@
'border-b px-2 sm:px-3 py-1.5' ,
{
'bg-blue-50 border-t border-blue-300 -mt-[1px]' :
! member . member . admitted && isOrganizer ,
! member . member . admitted &&
( isOrganizer || member . did === activeDid ) ,
} ,
{ 'border-slate-300' : member . member . admitted } ,
] "
@ -84,7 +85,9 @@
: class = " [
'font-semibold truncate' ,
{
'text-slate-500' : ! member . member . admitted && isOrganizer ,
'text-slate-500' :
! member . member . admitted &&
( isOrganizer || member . did === activeDid ) ,
} ,
] "
>
@ -94,7 +97,15 @@
class = "fa-fw text-amber-400"
/ >
< font -awesome
v - if = "!member.member.admitted && isOrganizer"
v - if = "member.did === activeDid"
icon = "hand"
class = "fa-fw text-blue-500"
/ >
< font -awesome
v - if = "
! member . member . admitted &&
( isOrganizer || member . did === activeDid )
"
icon = "hourglass-half"
class = "fa-fw text-slate-400"
/ >
@ -348,7 +359,10 @@ export default class MembersList extends Vue {
const content = JSON . parse ( decryptedContent ) ;
this . decryptedMembers . push ( {
member : member ,
member : {
... member ,
admitted : member . admitted !== undefined ? member . admitted : true , / / D e f a u l t t o t r u e f o r n o n - o r g a n i z e r s
} ,
name : content . name ,
did : content . did ,
isRegistered : ! ! content . isRegistered ,
@ -403,6 +417,10 @@ export default class MembersList extends Vue {
} else {
/ / n o n - o r g a n i z e r s o n l y g e t v i s i b l e m e m b e r s f r o m s e r v e r , p l u s t h e m s e l v e s
/ / C h e c k i f c u r r e n t u s e r i s a l r e a d y i n t h e d e c r y p t e d m e m b e r s l i s t
if (
! this . decryptedMembers . find ( ( member ) => member . did === this . activeDid )
) {
/ / t h i s i s a s t u b f o r t h i s u s e r j u s t i n c a s e t h e y a r e w a i t i n g t o g e t i n
/ / w h i c h i s e s p e c i a l l y u s e f u l s o t h e y c a n s e e t h e i r o w n D I D
const currentUser : DecryptedMember = {
@ -415,25 +433,39 @@ export default class MembersList extends Vue {
did : this . activeDid ,
isRegistered : false ,
} ;
const otherMembersPlusUser = [ currentUser , ... this . decryptedMembers ] ;
members = otherMembersPlusUser ;
members = [ currentUser , ... this . decryptedMembers ] ;
} else {
members = this . decryptedMembers ;
}
}
/ / S o r t m e m b e r s a c c o r d i n g t o p r i o r i t y :
/ / 1 . O r g a n i z e r a t t h e t o p
/ / 2 . N o n - a d m i t t e d m e m b e r s n e x t
/ / 3 . E v e r y o n e e l s e a f t e r
/ / 2 . C u r r e n t u s e r n e x t
/ / 3 . N o n - a d m i t t e d m e m b e r s n e x t
/ / 4 . E v e r y o n e e l s e a f t e r
return members . sort ( ( a , b ) => {
/ / C h e c k i f e i t h e r m e m b e r i s t h e o r g a n i z e r ( f i r s t m e m b e r i n o r i g i n a l l i s t )
const aIsOrganizer = a . member . memberId === this . members [ 0 ] ? . memberId ;
const bIsOrganizer = b . member . memberId === this . members [ 0 ] ? . memberId ;
/ / C h e c k i f e i t h e r m e m b e r i s t h e c u r r e n t u s e r
const aIsCurrentUser = a . did === this . activeDid ;
const bIsCurrentUser = b . did === this . activeDid ;
/ / O r g a n i z e r a l w a y s c o m e s f i r s t
if ( aIsOrganizer && ! bIsOrganizer ) return - 1 ;
if ( ! aIsOrganizer && bIsOrganizer ) return 1 ;
/ / I f b o t h a r e o r g a n i z e r s o r n e i t h e r a r e o r g a n i z e r s , s o r t b y a d m i s s i o n s t a t u s
if ( aIsOrganizer && bIsOrganizer ) return 0 ; / / B o t h o r g a n i z e r s , m a i n t a i n o r i g i n a l o r d e r
/ / I f b o t h a r e o r g a n i z e r s , m a i n t a i n o r i g i n a l o r d e r
if ( aIsOrganizer && bIsOrganizer ) return 0 ;
/ / C u r r e n t u s e r c o m e s s e c o n d ( a f t e r o r g a n i z e r )
if ( aIsCurrentUser && ! bIsCurrentUser && ! bIsOrganizer ) return - 1 ;
if ( ! aIsCurrentUser && bIsCurrentUser && ! aIsOrganizer ) return 1 ;
/ / I f b o t h a r e c u r r e n t u s e r s , m a i n t a i n o r i g i n a l o r d e r
if ( aIsCurrentUser && bIsCurrentUser ) return 0 ;
/ / N o n - a d m i t t e d m e m b e r s c o m e b e f o r e a d m i t t e d m e m b e r s
if ( ! a . member . admitted && b . member . admitted ) return - 1 ;