Skip to content

Commit 79b7f90

Browse files
fix: checkbox event propagation in permissions tables
1 parent 468473a commit 79b7f90

File tree

2 files changed

+26
-14
lines changed

2 files changed

+26
-14
lines changed

src/lib/components/permissions/team.svelte

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -88,11 +88,13 @@
8888
{@const exists = $groups.has(role)}
8989
<Table.Row.Button {root} on:click={() => onSelection(role)} disabled={exists}>
9090
<Table.Cell column="checkbox" {root}>
91-
<Selector.Checkbox
92-
size="s"
93-
id={team.$id}
94-
disabled={exists}
95-
checked={exists || selected.has(role)} />
91+
<div style:pointer-events="none">
92+
<Selector.Checkbox
93+
size="s"
94+
id={team.$id}
95+
disabled={exists}
96+
checked={exists || selected.has(role)} />
97+
</div>
9698
</Table.Cell>
9799
<Table.Cell column="team" {root}>
98100
<Layout.Stack direction="row" alignItems="center" gap="s">

src/lib/components/permissions/user.svelte

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,20 @@
5353
isLoading = false;
5454
}
5555
56-
function onSelection(role: string) {
56+
function onSelection(role: string, value: boolean | null = null) {
5757
const checked = selected.has(role);
58-
if (checked) {
59-
selected.delete(role);
58+
if (value === null) {
59+
if (checked) {
60+
selected.delete(role);
61+
} else {
62+
selected.add(role);
63+
}
6064
} else {
61-
selected.add(role);
65+
if (value) {
66+
selected.add(role);
67+
} else {
68+
selected.delete(role);
69+
}
6270
}
6371
selected = selected;
6472
@@ -90,11 +98,13 @@
9098
{@const exists = $groups.has(role)}
9199
<Table.Row.Button {root} on:click={() => onSelection(role)} disabled={exists}>
92100
<Table.Cell column="checkbox" {root}>
93-
<Selector.Checkbox
94-
size="s"
95-
id={user.$id}
96-
disabled={exists}
97-
checked={exists || selected.has(role)} />
101+
<div style:pointer-events="none">
102+
<Selector.Checkbox
103+
size="s"
104+
id={user.$id}
105+
disabled={exists}
106+
checked={exists || selected.has(role)} />
107+
</div>
98108
</Table.Cell>
99109
<Table.Cell column="user" {root}>
100110
<Layout.Stack direction="row" alignItems="center" gap="s">

0 commit comments

Comments
 (0)