Use generated UIColors everywhere. (#1405)

- Fix destructive buttons in the menu.
This commit is contained in:
Doug
2023-07-26 11:21:34 +01:00
committed by GitHub
parent ed68ed1c91
commit f2ffded87e
10 changed files with 37 additions and 17 deletions
@@ -69,7 +69,7 @@ private struct UITextViewWrapper: UIViewRepresentable {
textView.isMultiline = $isMultiline
textView.delegate = context.coordinator
textView.elementDelegate = context.coordinator
textView.textColor = UIColor(.compound.textPrimary)
textView.textColor = .compound.textPrimary
textView.isEditable = true
textView.font = font
textView.isSelectable = true
@@ -31,13 +31,23 @@ struct TimelineItemMacContextMenu: View {
TimelineItemMenuAction.react.label
}
}
ForEach(menuActions.actions) { action in
Button { send(action) } label: { action.label }
Button(role: action.isDestructive ? .destructive : nil) {
send(action)
} label: {
action.label
}
}
}
Section {
ForEach(menuActions.debugActions) { action in
Button { send(action) } label: { action.label }
Button(role: action.isDestructive ? .destructive : nil) {
send(action)
} label: {
action.label
}
}
}
}
@@ -84,7 +84,17 @@ enum TimelineItemMenuAction: Identifiable, Hashable {
}
}
/// The item's label.
/// Whether or not the action is destructive.
var isDestructive: Bool {
switch self {
case .redact, .report:
return true
default:
return false
}
}
/// The action's label.
var label: some View {
switch self {
case .copy: return Label(L10n.actionCopy, systemImage: "doc.on.doc")
@@ -232,7 +242,9 @@ public struct TimelineItemMenu: View {
private func viewsForActions(_ actions: [TimelineItemMenuAction]) -> some View {
ForEach(actions, id: \.self) { action in
Button { send(action) } label: {
Button(role: action.isDestructive ? .destructive : nil) {
send(action)
} label: {
action.label
.labelStyle(FixedIconSizeLabelStyle())
.multilineTextAlignment(.leading)