diff --git a/src/views/members/index.tsx b/src/views/members/index.tsx index 5d87149b..5dd138d7 100644 --- a/src/views/members/index.tsx +++ b/src/views/members/index.tsx @@ -1,4 +1,6 @@ import { HiOutlinePlusSmall, HiEllipsisHorizontal } from "react-icons/hi2"; +import { twMerge } from "tailwind-merge"; + import { useModal } from "~/providers/modal"; import { useWorkspace } from "~/providers/workspace"; import Modal from "~/components/modal"; @@ -15,11 +17,124 @@ export default function MembersPage() { const { modalContentType, openModal } = useModal(); const { workspace } = useWorkspace(); - const { data } = api.workspace.byId.useQuery( + const { data, isLoading } = api.workspace.byId.useQuery( { publicId: workspace.publicId }, - { enabled: workspace?.publicId ? true : false }, + // { enabled: workspace?.publicId ? true : false }, ); + const TableRow = ({ + memberPublicId, + memberName, + memberEmail, + memberRole, + memberStatus, + isLastRow, + showSkeleton, + }: { + memberPublicId?: string; + memberName?: string | null | undefined; + memberEmail?: string | null | undefined; + memberRole?: string; + memberStatus?: string; + isLastRow?: boolean; + showSkeleton?: boolean; + }) => { + const initials = memberName + ? getInitialsFromName(memberName) + : inferInitialsFromEmail(memberEmail ?? ""); + + return ( + + +
+
+ + + {initials} + + +
+
+
+
+

+ {memberName} +

+
+

+ {memberEmail} +

+
+
+
+ + +
+
+ + {memberRole && + memberRole.charAt(0).toUpperCase() + memberRole.slice(1)} + + {memberStatus === "invited" && ( + + Pending + + )} +
+
+ + openModal( + "REMOVE_MEMBER", + memberPublicId, + memberEmail ?? "", + ), + }, + ]} + > + + +
+
+ + + ); + }; + return (
@@ -49,104 +164,42 @@ export default function MembersPage() {
- + - {data?.members.map((member, index) => { - const initials = member.user?.name - ? getInitialsFromName(member.user.name) - : inferInitialsFromEmail(member.user?.email ?? ""); + {!isLoading && + data?.members.map((member, index) => ( + + ))} - return ( - <> - - - - - - ); - })} + {isLoading && ( + <> + + + + + )}
User Role
-
-
- - - {initials} - - -
-
-
-
-

- {member.user?.name} -

-
-

- {member.user?.email} -

-
-
-
-
-
-
- - {member.role.charAt(0).toUpperCase() + - member.role.slice(1)} - - {member.status === "invited" && ( - - Pending - - )} -
-
- - openModal( - "REMOVE_MEMBER", - member.publicId, - member.user?.email ?? "", - ), - }, - ]} - > - - -
-
-