diff --git a/surfsense_web/app/dashboard/[search_space_id]/team/team-content.tsx b/surfsense_web/app/dashboard/[search_space_id]/team/team-content.tsx index fadd617a5..5a54caaaf 100644 --- a/surfsense_web/app/dashboard/[search_space_id]/team/team-content.tsx +++ b/surfsense_web/app/dashboard/[search_space_id]/team/team-content.tsx @@ -240,46 +240,77 @@ export function TeamContent({ searchSpaceId }: TeamContentProps) { if (accessLoading || membersLoading) { return ( -
-
- - +
+
+ + +
+ + members +
-
+
- - - + + + + + Name + - - + + + + Last logged in + -
- -
+ + + Role +
- {SKELETON_KEYS.map((id) => ( - - + {SKELETON_KEYS.slice(0, 2).map((id) => ( + +
-
- - -
+
- +
- +
@@ -294,41 +325,63 @@ export function TeamContent({ searchSpaceId }: TeamContentProps) { return (
- {rolesLoading ? ( - - ) : ( - canInvite && ( + {canInvite && + (rolesLoading ? ( + + ) : ( - ) - )} - {invitesLoading ? ( - - ) : ( - canInvite && - activeInvites.length > 0 && ( - - ) - )} + ))} + {canInvite && + (invitesLoading ? ( + + ) : ( + activeInvites.length > 0 && ( + + ) + ))}

{members.length} {members.length === 1 ? "member" : "members"}

-
+
- - + + Name - + Last logged in @@ -458,8 +511,8 @@ function MemberRow({ const showActions = !member.is_owner && (canManageRoles || canRemove); return ( - - + +
{member.user_avatar_url && ( @@ -478,7 +531,7 @@ function MemberRow({
- + {member.user_last_login ? formatRelativeDate(member.user_last_login) : "Never"} @@ -542,7 +595,7 @@ function MemberRow({ )} - + router.push(`/dashboard/${searchSpaceId}/search-space-settings/team-roles`) @@ -710,7 +763,7 @@ function CreateInviteDialog({