import type { Workspace } from "@mosaic/shared"; import { WorkspaceMemberRole } from "@mosaic/shared"; import Link from "next/link"; interface WorkspaceCardProps { workspace: Workspace; userRole: WorkspaceMemberRole; memberCount: number; } const roleColors: Record = { [WorkspaceMemberRole.OWNER]: "bg-purple-100 text-purple-700", [WorkspaceMemberRole.ADMIN]: "bg-blue-100 text-blue-700", [WorkspaceMemberRole.MEMBER]: "bg-green-100 text-green-700", [WorkspaceMemberRole.GUEST]: "bg-gray-100 text-gray-700", }; const roleLabels: Record = { [WorkspaceMemberRole.OWNER]: "Owner", [WorkspaceMemberRole.ADMIN]: "Admin", [WorkspaceMemberRole.MEMBER]: "Member", [WorkspaceMemberRole.GUEST]: "Guest", }; export function WorkspaceCard({ workspace, userRole, memberCount, }: WorkspaceCardProps): React.JSX.Element { return (

{workspace.name}

{memberCount} {memberCount === 1 ? "member" : "members"}
{roleLabels[userRole]}
Created {new Date(workspace.createdAt).toLocaleDateString()}
); }