summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorFrank <[email protected]>2025-10-10 14:11:48 -0400
committerFrank <[email protected]>2025-10-10 14:11:48 -0400
commit9463ce8006d94ac8f66b71fea3fdf5efc49a744e (patch)
tree5179c1ea1cca01ba0a179a29b8083402f9dcc411
parent756fb616913e230721eb41117b59d23cd271c179 (diff)
downloadopencode-9463ce8006d94ac8f66b71fea3fdf5efc49a744e.tar.gz
opencode-9463ce8006d94ac8f66b71fea3fdf5efc49a744e.zip
wip: zen
-rw-r--r--packages/console/app/src/routes/workspace/[id]/members/member-section.module.css15
-rw-r--r--packages/console/app/src/routes/workspace/[id]/members/member-section.tsx14
2 files changed, 23 insertions, 6 deletions
diff --git a/packages/console/app/src/routes/workspace/[id]/members/member-section.module.css b/packages/console/app/src/routes/workspace/[id]/members/member-section.module.css
index 14246d585..8fd866536 100644
--- a/packages/console/app/src/routes/workspace/[id]/members/member-section.module.css
+++ b/packages/console/app/src/routes/workspace/[id]/members/member-section.module.css
@@ -187,10 +187,25 @@
&[data-slot="member-actions"] {
font-family: var(--font-sans);
+ display: flex;
+ gap: var(--space-2);
+
+ form button {
+ opacity: 0;
+ pointer-events: none;
+ transition: opacity 0.15s ease;
+ }
}
}
tbody tr {
+ &:hover {
+ [data-slot="member-actions"] form button {
+ opacity: 1;
+ pointer-events: auto;
+ }
+ }
+
&:last-child td {
border-bottom: none;
}
diff --git a/packages/console/app/src/routes/workspace/[id]/members/member-section.tsx b/packages/console/app/src/routes/workspace/[id]/members/member-section.tsx
index e9f617248..f18311569 100644
--- a/packages/console/app/src/routes/workspace/[id]/members/member-section.tsx
+++ b/packages/console/app/src/routes/workspace/[id]/members/member-section.tsx
@@ -125,8 +125,8 @@ function MemberRow(props: { member: any; workspaceID: string; actorID: string; a
<td data-slot="member-role">{props.member.role}</td>
<td data-slot="member-usage">{getUsageDisplay()}</td>
<td data-slot="member-joined">{props.member.timeSeen ? "" : "invited"}</td>
- <td data-slot="member-actions">
- <Show when={isAdmin()}>
+ <Show when={isAdmin()}>
+ <td data-slot="member-actions">
<button data-color="ghost" onClick={() => setEditing(true)}>
Edit
</button>
@@ -137,13 +137,13 @@ function MemberRow(props: { member: any; workspaceID: string; actorID: string; a
<button data-color="ghost">Delete</button>
</form>
</Show>
- </Show>
- </td>
+ </td>
+ </Show>
</tr>
}
>
<tr>
- <td colspan="5">
+ <td colspan={isAdmin() ? 5 : 4}>
<form action={updateMember} method="post">
<div data-slot="edit-member-email">{props.member.accountEmail ?? props.member.email}</div>
<input type="hidden" name="id" value={props.member.id} />
@@ -292,7 +292,9 @@ export function MemberSection() {
<th>Role</th>
<th>Usage</th>
<th></th>
- <th></th>
+ <Show when={data()?.actorRole === "admin"}>
+ <th></th>
+ </Show>
</tr>
</thead>
<tbody>