Skip to content

Commit 4b85cc9

Browse files
committed
Fix the merge conflict error
1 parent 9018963 commit 4b85cc9

File tree

1 file changed

+79
-70
lines changed

1 file changed

+79
-70
lines changed

src/components/ui/members/member-card.tsx

Lines changed: 79 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -63,16 +63,22 @@ export function MemberCard({
6363
(state: OrganizationStateStore) => state.currentOrganizationId
6464
);
6565
const { isACoach, userSession } = useAuthStore((state: AuthStore) => state);
66-
const { error: deleteError, deleteNested: deleteUser } = useUserMutation(currentOrganizationId);
67-
const { error: createError, createNested: createRelationship } = useCoachingRelationshipMutation(currentOrganizationId);
66+
const { error: deleteError, deleteNested: deleteUser } = useUserMutation(
67+
currentOrganizationId
68+
);
69+
const { error: createError, createNested: createRelationship } =
70+
useCoachingRelationshipMutation(currentOrganizationId);
6871

6972
console.log("is a coach", isACoach);
7073

7174
// Check if current user is a coach in any of this user's relationships
7275
// and make sure we can't delete ourselves. Admins can delete any user.
73-
const canDeleteUser = (userRelationships?.some(
74-
(rel) => rel.coach_id === userSession.id && userId !== userSession.id
75-
) || (userSession.role === Role.Admin)) && userSession.id !== userId;
76+
const canDeleteUser =
77+
(userRelationships?.some(
78+
(rel) => rel.coach_id === userSession.id && userId !== userSession.id
79+
) ||
80+
userSession.role === Role.Admin) &&
81+
userSession.id !== userId;
7682

7783
const handleDelete = async () => {
7884
if (!confirm("Are you sure you want to delete this member?")) {
@@ -129,31 +135,16 @@ export function MemberCard({
129135
toast.error(`Error assigning ${assignMode}`);
130136
return;
131137
}
132-
133-
toast.success(`Successfully assigned ${assignedMember.first_name} ${assignedMember.last_name} as ${assignMode} for ${selectedMember.first_name} ${selectedMember.last_name}`);
138+
139+
toast.success(
140+
`Successfully assigned ${assignedMember.first_name} ${assignedMember.last_name} as ${assignMode} for ${selectedMember.first_name} ${selectedMember.last_name}`
141+
);
134142
onRefresh();
135143
setAssignDialogOpen(false);
136144
setSelectedMember(null);
137145
setAssignedMember(null);
138146
};
139147

140-
// Placeholder – actual UI flows will be implemented later
141-
const [assignDialogOpen, setAssignDialogOpen] = useState(false);
142-
const [assignMode, setAssignMode] = useState<"coach" | "coachee">("coach");
143-
const [selectedMemberId, setSelectedMemberId] = useState<Id | null>(null);
144-
145-
const handleCreateCoachingRelationship = () => {
146-
if (!selectedMemberId) return;
147-
if (assignMode === "coach") {
148-
console.log("Assign", selectedMemberId, "as coach for", userId);
149-
} else {
150-
console.log("Assign", selectedMemberId, "as coachee for", userId);
151-
}
152-
// TODO: call mutation
153-
setAssignDialogOpen(false);
154-
setSelectedMemberId(null);
155-
};
156-
157148
return (
158149
<div className="flex items-center p-4 hover:bg-accent/50 transition-colors">
159150
<div className="flex-1">
@@ -163,49 +154,61 @@ export function MemberCard({
163154
{email && <p className="text-sm text-muted-foreground">{email}</p>}
164155
</div>
165156
{(isACoach || userSession.role === Role.Admin) && (
166-
<DropdownMenu>
167-
<DropdownMenuTrigger asChild>
168-
<Button variant="ghost" size="icon" className="text-muted-foreground">
169-
<MoreHorizontal className="h-4 w-4" />
170-
</Button>
171-
</DropdownMenuTrigger>
172-
<DropdownMenuContent align="end">
173-
{userSession.role === Role.Admin && (
174-
<>
175-
<DropdownMenuItem
176-
onClick={() => {
177-
setAssignMode("coach");
178-
setAssignDialogOpen(true);
179-
setSelectedMember({id: userId, first_name: firstName, last_name: lastName});
180-
}}
181-
>
182-
Assign Coach
183-
</DropdownMenuItem>
184-
<DropdownMenuItem
185-
onClick={() => {
186-
setAssignMode("coachee");
187-
setAssignDialogOpen(true);
188-
setSelectedMember({id: userId, first_name: firstName, last_name: lastName});
189-
}}
190-
>
191-
Assign Coachee
192-
</DropdownMenuItem>
193-
</>
194-
)}
195-
{canDeleteUser && (
196-
<>
197-
<DropdownMenuSeparator />
198-
<DropdownMenuItem
199-
onClick={handleDelete}
200-
className="text-destructive focus:text-destructive"
201-
>
202-
<Trash2 className="mr-2 h-4 w-4" /> Delete
203-
</DropdownMenuItem>
204-
</>
205-
)}
206-
</DropdownMenuContent>
207-
</DropdownMenu>
208-
)}
157+
<DropdownMenu>
158+
<DropdownMenuTrigger asChild>
159+
<Button
160+
variant="ghost"
161+
size="icon"
162+
className="text-muted-foreground"
163+
>
164+
<MoreHorizontal className="h-4 w-4" />
165+
</Button>
166+
</DropdownMenuTrigger>
167+
<DropdownMenuContent align="end">
168+
{userSession.role === Role.Admin && (
169+
<>
170+
<DropdownMenuItem
171+
onClick={() => {
172+
setAssignMode("coach");
173+
setAssignDialogOpen(true);
174+
setSelectedMember({
175+
id: userId,
176+
first_name: firstName,
177+
last_name: lastName,
178+
});
179+
}}
180+
>
181+
Assign Coach
182+
</DropdownMenuItem>
183+
<DropdownMenuItem
184+
onClick={() => {
185+
setAssignMode("coachee");
186+
setAssignDialogOpen(true);
187+
setSelectedMember({
188+
id: userId,
189+
first_name: firstName,
190+
last_name: lastName,
191+
});
192+
}}
193+
>
194+
Assign Coachee
195+
</DropdownMenuItem>
196+
</>
197+
)}
198+
{canDeleteUser && (
199+
<>
200+
<DropdownMenuSeparator />
201+
<DropdownMenuItem
202+
onClick={handleDelete}
203+
className="text-destructive focus:text-destructive"
204+
>
205+
<Trash2 className="mr-2 h-4 w-4" /> Delete
206+
</DropdownMenuItem>
207+
</>
208+
)}
209+
</DropdownMenuContent>
210+
</DropdownMenu>
211+
)}
209212

210213
{/* Assign Coach/Coachee Modal */}
211214
<Dialog open={assignDialogOpen} onOpenChange={setAssignDialogOpen}>
@@ -215,7 +218,8 @@ export function MemberCard({
215218
{assignMode === "coach" ? "Assign Coach" : "Assign Coachee"}
216219
</DialogTitle>
217220
<DialogDescription>
218-
Select a member to be their {assignMode === "coach" ? "coach" : "coachee"}
221+
Select a member to be their{" "}
222+
{assignMode === "coach" ? "coach" : "coachee"}
219223
</DialogDescription>
220224
</DialogHeader>
221225
<Select
@@ -229,12 +233,17 @@ export function MemberCard({
229233
{users
230234
.filter((m) => m.id !== userId)
231235
.map((m) => (
232-
<SelectItem key={m.id} value={m.id.toString()}>{`${m.first_name} ${m.last_name}`}</SelectItem>
236+
<SelectItem
237+
key={m.id}
238+
value={m.id.toString()}
239+
>{`${m.first_name} ${m.last_name}`}</SelectItem>
233240
))}
234241
</SelectContent>
235242
</Select>
236243
<DialogFooter>
237-
<Button onClick={handleCreateCoachingRelationship}>{assignMode === "coach" ? "Assign as Coach" : "Assign as Coachee"}</Button>
244+
<Button onClick={handleCreateCoachingRelationship}>
245+
{assignMode === "coach" ? "Assign as Coach" : "Assign as Coachee"}
246+
</Button>
238247
</DialogFooter>
239248
</DialogContent>
240249
</Dialog>

0 commit comments

Comments
 (0)