diff --git a/apps/dashboard/src/components/data-table/settings/members/data-table.tsx b/apps/dashboard/src/components/data-table/settings/members/data-table.tsx index 058ec2a5..d494af4c 100644 --- a/apps/dashboard/src/components/data-table/settings/members/data-table.tsx +++ b/apps/dashboard/src/components/data-table/settings/members/data-table.tsx @@ -1,3 +1,4 @@ +import { Badge } from "@openstatus/ui/components/ui/badge"; import { Table, TableBody, @@ -15,6 +16,7 @@ import { useTRPC } from "@/lib/trpc/client"; export function DataTable() { const trpc = useTRPC(); const { data: members, refetch } = useQuery(trpc.member.list.queryOptions()); + const { data: user } = useQuery(trpc.user.get.queryOptions()); const { data: workspace } = useQuery(trpc.workspace.get.queryOptions()); const deleteMemberMutation = useMutation( trpc.member.delete.mutationOptions({ @@ -38,37 +40,49 @@ export function DataTable() { - {members.map((item) => ( - - - {item.user.name ?? ( - - - )} - - {item.user.email} - {item.role} - - {formatDate(item.user.createdAt ?? item.createdAt)} - - -
- - await deleteMemberMutation.mutateAsync({ - id: item.user.id, - }), - }} - /> -
-
-
- ))} + {members.map((item) => { + const currentUserId = user?.id; + const isMe = Boolean(currentUserId && item.user.id === currentUserId); + const canDelete = Boolean( + currentUserId && item.user.id !== currentUserId, + ); + + return ( + + +
+ {item.user.name ?? ( + - + )} + {isMe ? You : null} +
+
+ {item.user.email} + {item.role} + + {formatDate(item.user.createdAt ?? item.createdAt)} + + + {canDelete ? ( +
+ + await deleteMemberMutation.mutateAsync({ + id: item.user.id, + }), + }} + /> +
+ ) : null} +
+
+ ); + })}
);