From 02eebc19ca20d9cfc3332df627d9ef9d48141cbe Mon Sep 17 00:00:00 2001 From: Kylmakalle Date: Fri, 7 Feb 2025 11:33:50 +0200 Subject: [PATCH] Fix ColorScheme --- .../Sources/SGInputToolbar.swift | 42 ++++++------------- .../Sources/MessageInputPanelComponent.swift | 5 +-- 2 files changed, 14 insertions(+), 33 deletions(-) diff --git a/Swiftgram/SGInputToolbar/Sources/SGInputToolbar.swift b/Swiftgram/SGInputToolbar/Sources/SGInputToolbar.swift index 61cc122e4c..a21f317e93 100644 --- a/Swiftgram/SGInputToolbar/Sources/SGInputToolbar.swift +++ b/Swiftgram/SGInputToolbar/Sources/SGInputToolbar.swift @@ -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, - 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) } } diff --git a/submodules/TelegramUI/Components/MessageInputPanelComponent/Sources/MessageInputPanelComponent.swift b/submodules/TelegramUI/Components/MessageInputPanelComponent/Sources/MessageInputPanelComponent.swift index 212805a6b4..944796b9e5 100644 --- a/submodules/TelegramUI/Components/MessageInputPanelComponent/Sources/MessageInputPanelComponent.swift +++ b/submodules/TelegramUI/Components/MessageInputPanelComponent/Sources/MessageInputPanelComponent.swift @@ -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