cheogram-aapl
created pr with
cheogram-aapl/remove-role.1
commented
lgtm
cmds
checkout latest patchset:
ssh pr.pico.sh pull cheogram-aapl:remove-role | git am -3checkout specific patchset revision:
ssh pr.pico.sh pull cheogram-aapl:remove-role [rev] | git am -3add changes to patch request:
git format-patch main --stdout | ssh pr.pico.sh cheogram-aapl:remove-roleadd comment to patch request:
ssh pr.pico.sh comment cheogram-aapl:remove-role "lgtm!"
Patchset
cheogram-aapl/remove-role.1
Add X to role pill to remove a role
Stephen Paul Weber
2026-11-02T21:30:40ZSemantic diff summary
0 added,
0 modified,
0 signature changed,
0 removed
across 0 analyzed files
(2 files skipped: unsupported file type)
+19
-1
App/ChatDetailView.swift
#
| ... | ... | @@ -354,7 +354,25 @@ struct ChatDetailView: View { | |
| 354 | 354 | } | |
| 355 | 355 | HStack(spacing: 8) { | |
| 356 | 356 | ForEach(member.roles, id: \.id) { role in | |
| 357 | - | Text(role.title).lineLimit(1).padding(.horizontal, 12).padding(.vertical, 6).background(Color(hex: role.color())).clipShape(Capsule()) | |
| 357 | + | HStack(spacing: 4) { | |
| 358 | + | Text(role.title) | |
| 359 | + | .lineLimit(1) | |
| 360 | + | ||
| 361 | + | Button { | |
| 362 | + | viewModel.chat!.removeRole(member: member, role: role) | |
| 363 | + | } label: { | |
| 364 | + | Image(systemName: "xmark") | |
| 365 | + | .font(.system(size: 9, weight: .bold)) | |
| 366 | + | .padding(4) | |
| 367 | + | .contentShape(Rectangle()) | |
| 368 | + | } | |
| 369 | + | .buttonStyle(.plain) | |
| 370 | + | } | |
| 371 | + | .padding(.leading, 12) | |
| 372 | + | .padding(.trailing, 6) | |
| 373 | + | .padding(.vertical, 6) | |
| 374 | + | .background(Color(hex: role.color())) | |
| 375 | + | .clipShape(Capsule()) | |
| 358 | 376 | } | |
| 359 | 377 | let availableRoles = viewModel.chat!.availableRoles(member: member) | |
| 360 | 378 | if !availableRoles.isEmpty { |