Components
Invite Teammates Component This component allows users to invite new members via email, generate a shareable link, and view the status of existing team members. It's built with accessibility and reusability in mind, featuring smooth animations for list rendering.
Loading preview...
import { InviteTeammates } from "@/components/ui/invite-teammates"; // Adjust the import path
const Demo = () => {
// Sample data for the teammates list
const sampleTeammates = [
{
name: "Arlo Finch",
email: "arlofinch@company.com",
avatarUrl: "https://i.pravatar.cc/150?u=arlo",
status: "Online" as const,
lastActive: "",
},
{
name: "Juniper Lane",
email: "juniperlane@company.com",
avatarUrl: "https://i.pravatar.cc/150?u=juniper",
status: "Away" as const,
lastActive: "2 mins",
},
{
name: "Rowan Sage",
email: "rowansage@company.com",
avatarUrl: "https://i.pravatar.cc/150?u=rowan",
status: "Away" as const,
lastActive: "2 days",
},
{
name: "Finnian York",
email: "finnianyork@company.com",
avatarUrl: "https://i.pravatar.cc/150?u=finnian",
status: "Inactive" as const,
lastActive: "1 year",
},
];
// Handler functions to demonstrate interactivity
const handleInvite = (emails: string[]) => {
console.log("Inviting emails:", emails);
// Here you would typically make an API call
alert(`Invited: ${emails.join(", ")}`);
};
const handleGetLink = () => {
console.log("Generating shareable link...");
// Logic to copy link to clipboard
navigator.clipboard.writeText("https://example.com/share/file-12345");
alert("Shareable link copied to clipboard!");
};
return (
<div className="flex min-h-screen items-center justify-center bg-background p-4">
<InviteTeammates
teammates={sampleTeammates}
onInvite={handleInvite}
onGetLink={handleGetLink}
/>
</div>
);
};
export default Demo;