);
}
export default function ProjectSettings({ loaderData }: Route.ComponentProps) {
const { project, allUsers, currentPermissions, currentUser } = loaderData;
// Create a map of user permissions for easy lookup
const userPermissions = new Map();
currentPermissions.forEach((permission) => {
userPermissions.set(permission.userId, permission);
});
// Get users who don't have permissions yet
const availableUsers = allUsers.filter(
(user) => !userPermissions.has(user.id) && user.id !== project.ownerId
);
return (
{/* Header */}
Project Settings
Manage project details and user permissions
{/* Project Details */}
Project Details
Update project name, description, and visibility
{loaderData.isOwner && (
)}
{/* Danger Zone */}
{project.ownerId === currentUser.id && (
Danger Zone
Permanently delete this project and all its data
)}
);
}