Skip to content

Commit 2323f79

Browse files
committed
fix: Cursor, new disabled popup for Task Memberships, CardModal for non-editor fixes
1 parent 4762758 commit 2323f79

File tree

4 files changed

+33
-36
lines changed

4 files changed

+33
-36
lines changed

client/src/components/Board/ListView/MembersCell/MembersCell.jsx

+13-14
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,18 @@ const MembersCell = React.memo(({ id, users, allBoardMemberships, cellClassName,
1414
const userIds = users.map((user) => user.id);
1515

1616
const usersNode = users.map((user) => (
17-
<span key={user.id} className={classNames(s.attachment, s.user)}>
17+
<MembershipsPopup
18+
key={user.id}
19+
items={allBoardMemberships}
20+
currentUserIds={userIds}
21+
onUserSelect={(userId) => onUserAdd(userId, id)}
22+
onUserDeselect={(userId) => onUserRemove(userId, id)}
23+
offset={0}
24+
disabled={!canEdit}
25+
wrapperClassName={s.userWrapper}
26+
>
1827
<User name={user.name} avatarUrl={user.avatarUrl} size="card" />
19-
</span>
28+
</MembershipsPopup>
2029
));
2130

2231
const addUserNode = (
@@ -34,21 +43,11 @@ const MembersCell = React.memo(({ id, users, allBoardMemberships, cellClassName,
3443
</MembershipsPopup>
3544
);
3645

37-
if (!canEdit) {
38-
return <div className={classNames(cellClassName, s.users)}>{usersNode}</div>;
39-
}
40-
41-
if (users.length === 0) {
46+
if (users.length === 0 && canEdit) {
4247
return addUserNode;
4348
}
4449

45-
return (
46-
<div className={classNames(cellClassName, s.users)}>
47-
<MembershipsPopup items={allBoardMemberships} currentUserIds={userIds} onUserSelect={(userId) => onUserAdd(userId, id)} onUserDeselect={(userId) => onUserRemove(userId, id)} offset={0}>
48-
{usersNode}
49-
</MembershipsPopup>
50-
</div>
51-
);
50+
return <div className={classNames(cellClassName)}>{usersNode}</div>;
5251
});
5352

5453
MembersCell.propTypes = {

client/src/components/Board/ListView/MembersCell/MembersCell.module.scss

+1-8
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,9 @@
11
:global(#app) {
2-
.attachment {
2+
.userWrapper {
33
display: inline-block;
4-
}
5-
6-
.user {
74
margin-right: -8px;
85
}
96

10-
.users {
11-
display: inline-flex;
12-
}
13-
147
.popupWrapper {
158
height: 100%;
169
width: 100%;

client/src/components/CardModal/CardModal.jsx

+5-5
Original file line numberDiff line numberDiff line change
@@ -420,7 +420,7 @@ const CardModal = React.memo(
420420
</div>
421421
)}
422422
</div>
423-
<MembershipsPopup items={allBoardMemberships} currentUserIds={userIds} onUserSelect={onUserAdd} onUserDeselect={onUserRemove} offset={0}>
423+
<MembershipsPopup items={allBoardMemberships} currentUserIds={userIds} onUserSelect={onUserAdd} onUserDeselect={onUserRemove} offset={0} disabled={!canEdit}>
424424
{users.slice(0, visibleMembersCount).map((user, index) => (
425425
<span key={user.id} className={classNames(s.headerItem, s.user, users.length <= visibleMembersCount && users.length === index + 1 && s.lastUser)}>
426426
<User name={user.name} avatarUrl={user.avatarUrl} size="small" />
@@ -566,7 +566,7 @@ const CardModal = React.memo(
566566
descriptionEditOpenNode
567567
);
568568

569-
const descriptionNode = (description || canEdit) && (
569+
const descriptionNode = (
570570
<div>
571571
<div className={s.moduleHeader}>
572572
<Icon type={IconType.BarsStaggered} size={IconSize.Size20} className={s.moduleIcon} />
@@ -583,7 +583,7 @@ const CardModal = React.memo(
583583
</div>
584584
<div>
585585
{descShown && canEdit && descriptionEditNode}
586-
{descShown && !canEdit && (
586+
{descShown && !canEdit && description && (
587587
<div className={s.descriptionText}>
588588
<MDPreview source={description} isGithubConnected={isGithubConnected} githubRepo={githubRepo} />
589589
</div>
@@ -595,7 +595,7 @@ const CardModal = React.memo(
595595
const completedTasks = tasks.filter((task) => task.isCompleted);
596596
const closestNotCompletedTaslDueDate = tasks.filter((task) => !task.isCompleted && task.dueDate).sort((a, b) => new Date(a.dueDate) - new Date(b.dueDate))[0];
597597

598-
const tasksNode = (tasks.length > 0 || canEdit) && (
598+
const tasksNode = (
599599
<div>
600600
<div className={s.moduleHeader}>
601601
<Icon type={IconType.Check} size={IconSize.Size20} className={s.moduleIcon} />
@@ -620,7 +620,7 @@ const CardModal = React.memo(
620620
</Button>
621621
</div>
622622
<div>
623-
{taskShown && (
623+
{taskShown && tasks.length > 0 && (
624624
<Tasks
625625
ref={tasksRef}
626626
variant="cardModal"

client/src/components/Tasks/Item.jsx

+14-9
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ const Item = React.memo(({ variant, id, index, name, dueDate, boardMemberships,
9292
}
9393

9494
const membersNode = (
95-
<div className={classNames(s.members, gs.cursorPointer, isCompleted && s.itemCompleted)}>
95+
<div className={classNames(s.members, canEdit && gs.cursorPointer, isCompleted && s.itemCompleted)}>
9696
{users.slice(0, visibleMembersCount).map((user) => (
9797
<span key={user.id} className={s.member}>
9898
<User name={user.name} avatarUrl={user.avatarUrl} size={userSize} />
@@ -131,14 +131,19 @@ const Item = React.memo(({ variant, id, index, name, dueDate, boardMemberships,
131131
<span className={classNames(s.task, isCompleted && s.taskCompleted, canEdit && s.taskEditable)} onClick={handleClick} title={name}>
132132
{name}
133133
</span>
134-
{users &&
135-
(isPersisted && canEdit ? (
136-
<MembershipsPopup items={boardMemberships} currentUserIds={users.map((user) => user.id)} onUserSelect={onUserAdd} onUserDeselect={onUserRemove} offset={0} position="left-start">
137-
{membersNode}
138-
</MembershipsPopup>
139-
) : (
140-
membersNode
141-
))}
134+
{users && (
135+
<MembershipsPopup
136+
items={boardMemberships}
137+
currentUserIds={users.map((user) => user.id)}
138+
onUserSelect={onUserAdd}
139+
onUserDeselect={onUserRemove}
140+
offset={0}
141+
position="left-start"
142+
disabled={!(canEdit && isPersisted)}
143+
>
144+
{membersNode}
145+
</MembershipsPopup>
146+
)}
142147
{dueDate && (
143148
<div className={classNames(s.dueDate, canEdit && gs.cursorGrab, isCompleted && s.itemCompleted, variant !== VARIANTS.CARDMODAL && s.dueDateCard)}>
144149
<DueDateEditPopup defaultValue={dueDate} onUpdate={handleDueDateUpdate} disabled={!(canEdit && isPersisted)}>

0 commit comments

Comments
 (0)