diff --git a/src/components/ProjectSettings.tsx b/src/components/ProjectSettings.tsx
index fe08eb3..c14cf7c 100644
--- a/src/components/ProjectSettings.tsx
+++ b/src/components/ProjectSettings.tsx
@@ -75,14 +75,7 @@ export default function ProjectSettings({ project, onUpdated }: Props) {
}
};
- const handleRemoveMember = async (memberId: string) => {
- try {
- await removeProjectMember(project.id, memberId);
- setMembers(members.filter((m) => m.id !== memberId));
- } catch (e) {
- console.error("Failed to remove member:", e);
- }
- };
+ // handleRemoveMember is now inline in agent toggle
const handleSave = async () => {
setSaving(true);
@@ -180,43 +173,76 @@ export default function ProjectSettings({ project, onUpdated }: Props) {
Загрузка...
) : (
- {/* Current Members */}
+ {/* Humans (non-removable except by dropdown) */}
- {members.map((member) => (
+ {members.filter(m => m.type !== "agent").map((member) => (
-
- {member.type === "agent" ? "A" : "H"}
+
+ H
{member.name}
{member.slug} • {member.role}
- {member.role !== "owner" && (
-
- )}
))}
- {/* Add Member */}
- {availableMembers.length > 0 && (
-
+ {/* Agents with toggle switches */}
+
Агенты
+
+ {allMembers.filter(m => m.type === "agent").map((agent) => {
+ const isActive = members.some(pm => pm.id === agent.id);
+ return (
+
+
+
+ A
+
+
+
{agent.name}
+
{agent.slug}
+
+
+
+
+ );
+ })}
+
+
+ {/* Add human member */}
+ {availableMembers.filter(m => m.type !== "agent").length > 0 && (
+