Fix ColorScheme

This commit is contained in:
Kylmakalle 2025-02-07 11:33:50 +02:00
parent 3b71399019
commit 02eebc19ca
2 changed files with 14 additions and 33 deletions

View File

@ -19,7 +19,6 @@ public struct ChatToolbarView: View {
@Binding private var showNewLine: Bool
var onClearFormatting: () -> Void
var preferredColorScheme: ColorScheme?
public init(
onQuote: @escaping () -> Void,
@ -33,8 +32,7 @@ public struct ChatToolbarView: View {
onCode: @escaping () -> Void,
onNewLine: @escaping () -> Void,
showNewLine: Binding<Bool>,
onClearFormatting: @escaping () -> Void,
preferredColorScheme: ColorScheme? = nil
onClearFormatting: @escaping () -> Void
) {
self.onQuote = onQuote
self.onSpoiler = onSpoiler
@ -48,7 +46,6 @@ public struct ChatToolbarView: View {
self.onNewLine = onNewLine
self._showNewLine = showNewLine
self.onClearFormatting = onClearFormatting
self.preferredColorScheme = preferredColorScheme // TODO(swiftgram): Does not work for buttons :(
}
public func setShowNewLine(_ value: Bool) {
@ -62,42 +59,36 @@ public struct ChatToolbarView: View {
Button(action: onNewLine) {
Image(systemName: "return")
}
.buttonStyle(ToolbarButtonStyle(preferredColorScheme: preferredColorScheme))
.preferredColorScheme(preferredColorScheme)
.buttonStyle(ToolbarButtonStyle())
}
Button(action: onClearFormatting) {
Image(systemName: "pencil.slash")
}
.buttonStyle(ToolbarButtonStyle(preferredColorScheme: preferredColorScheme))
.preferredColorScheme(preferredColorScheme)
.buttonStyle(ToolbarButtonStyle())
Spacer()
// Quote Button
Button(action: onQuote) {
Image(systemName: "text.quote")
}
.buttonStyle(ToolbarButtonStyle(preferredColorScheme: preferredColorScheme))
.preferredColorScheme(preferredColorScheme)
.buttonStyle(ToolbarButtonStyle())
// Spoiler Button
Button(action: onSpoiler) {
Image(systemName: "eye.slash")
}
.buttonStyle(ToolbarButtonStyle(preferredColorScheme: preferredColorScheme))
.preferredColorScheme(preferredColorScheme)
.buttonStyle(ToolbarButtonStyle())
// Bold Button
Button(action: onBold) {
Image(systemName: "bold")
}
.buttonStyle(ToolbarButtonStyle(preferredColorScheme: preferredColorScheme))
.preferredColorScheme(preferredColorScheme)
.buttonStyle(ToolbarButtonStyle())
// Italic Button
Button(action: onItalic) {
Image(systemName: "italic")
}
.buttonStyle(ToolbarButtonStyle(preferredColorScheme: preferredColorScheme))
.preferredColorScheme(preferredColorScheme)
.buttonStyle(ToolbarButtonStyle())
// Monospace Button
Button(action: onMonospace) {
@ -107,52 +98,44 @@ public struct ChatToolbarView: View {
Text("M")
}
}
.buttonStyle(ToolbarButtonStyle(preferredColorScheme: preferredColorScheme))
.preferredColorScheme(preferredColorScheme)
.buttonStyle(ToolbarButtonStyle())
// Link Button
Button(action: onLink) {
Image(systemName: "link")
}
.buttonStyle(ToolbarButtonStyle(preferredColorScheme: preferredColorScheme))
.preferredColorScheme(preferredColorScheme)
.buttonStyle(ToolbarButtonStyle())
// Underline Button
Button(action: onUnderline) {
Image(systemName: "underline")
}
.buttonStyle(ToolbarButtonStyle(preferredColorScheme: preferredColorScheme))
.preferredColorScheme(preferredColorScheme)
.buttonStyle(ToolbarButtonStyle())
// Strikethrough Button
Button(action: onStrikethrough) {
Image(systemName: "strikethrough")
}
.buttonStyle(ToolbarButtonStyle(preferredColorScheme: preferredColorScheme))
.preferredColorScheme(preferredColorScheme)
.buttonStyle(ToolbarButtonStyle())
// Code Button
Button(action: onCode) {
Image(systemName: "chevron.left.forwardslash.chevron.right")
}
.buttonStyle(ToolbarButtonStyle(preferredColorScheme: preferredColorScheme))
.preferredColorScheme(preferredColorScheme)
.buttonStyle(ToolbarButtonStyle())
}
.padding(.horizontal, 8)
.padding(.vertical, 8)
}
.background(Color(UIColor.clear))
.preferredColorScheme(preferredColorScheme)
}
}
@available(iOS 13.0, *)
struct ToolbarButtonStyle: ButtonStyle {
var preferredColorScheme: ColorScheme? = nil
func makeBody(configuration: Configuration) -> some View {
configuration.label
.font(.system(size: 17))
@ -161,6 +144,5 @@ struct ToolbarButtonStyle: ButtonStyle {
.cornerRadius(8)
// TODO(swiftgram): Does not work for fast taps (like mine)
.opacity(configuration.isPressed ? 0.4 : 1.0)
.preferredColorScheme(preferredColorScheme)
}
}

View File

@ -2380,9 +2380,8 @@ extension MessageInputPanelComponent.View {
onClearFormatting: { [weak self] in
guard let _ = self else { return }
NotificationCenter.default.post(name: notificationName, object: nil, userInfo: ["action": "clearFormatting"])
},
preferredColorScheme: .dark
)
}
).colorScheme(.dark)
let toolbarHostingController = UIHostingController(rootView: toolbar)
toolbarHostingController.view.backgroundColor = .clear