From 2811c4df25d425cc28b65587316023e3932f16ae Mon Sep 17 00:00:00 2001 From: Fernando Bunn Date: Wed, 11 Dec 2024 11:04:09 -0300 Subject: [PATCH] Fix webview background color https://app.asana.com/0/1204167627774280/1208947092872895/f --- LocalPackages/AIChat/Package.swift | 10 +++-- .../AIChat/AIChatWebViewController.swift | 2 +- .../Resources/Assets.xcassets/Contents.json | 6 +++ .../Contents.json | 38 +++++++++++++++++++ .../Sources/AIChat/UIColor+Extension.swift | 26 +++++++++++++ 5 files changed, 78 insertions(+), 4 deletions(-) create mode 100644 LocalPackages/AIChat/Sources/AIChat/Resources/Assets.xcassets/Contents.json create mode 100644 LocalPackages/AIChat/Sources/AIChat/Resources/Assets.xcassets/webViewBackgroundColor.colorset/Contents.json create mode 100644 LocalPackages/AIChat/Sources/AIChat/UIColor+Extension.swift diff --git a/LocalPackages/AIChat/Package.swift b/LocalPackages/AIChat/Package.swift index 70d6f9499d..478b4b4705 100644 --- a/LocalPackages/AIChat/Package.swift +++ b/LocalPackages/AIChat/Package.swift @@ -1,6 +1,5 @@ // swift-tools-version: 6.0 // The swift-tools-version declares the minimum version of Swift required to build this package. - import PackageDescription let package = Package( @@ -11,10 +10,15 @@ let package = Package( products: [ .library( name: "AIChat", - targets: ["AIChat"]), + targets: ["AIChat"] + ), ], targets: [ .target( - name: "AIChat"), + name: "AIChat", + resources: [ + .process("Resources/Assets.xcassets") + ] + ), ] ) diff --git a/LocalPackages/AIChat/Sources/AIChat/AIChatWebViewController.swift b/LocalPackages/AIChat/Sources/AIChat/AIChatWebViewController.swift index ec0d1d5d2d..2c2e47fa20 100644 --- a/LocalPackages/AIChat/Sources/AIChat/AIChatWebViewController.swift +++ b/LocalPackages/AIChat/Sources/AIChat/AIChatWebViewController.swift @@ -30,7 +30,7 @@ final class AIChatWebViewController: UIViewController { private lazy var webView: WKWebView = { let webView = WKWebView(frame: .zero, configuration: chatModel.webViewConfiguration) webView.isOpaque = false /// Required to make the background color visible - webView.backgroundColor = .systemBackground + webView.backgroundColor = .webViewBackgroundColor webView.navigationDelegate = self webView.translatesAutoresizingMaskIntoConstraints = false return webView diff --git a/LocalPackages/AIChat/Sources/AIChat/Resources/Assets.xcassets/Contents.json b/LocalPackages/AIChat/Sources/AIChat/Resources/Assets.xcassets/Contents.json new file mode 100644 index 0000000000..73c00596a7 --- /dev/null +++ b/LocalPackages/AIChat/Sources/AIChat/Resources/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/LocalPackages/AIChat/Sources/AIChat/Resources/Assets.xcassets/webViewBackgroundColor.colorset/Contents.json b/LocalPackages/AIChat/Sources/AIChat/Resources/Assets.xcassets/webViewBackgroundColor.colorset/Contents.json new file mode 100644 index 0000000000..ed36c62a6f --- /dev/null +++ b/LocalPackages/AIChat/Sources/AIChat/Resources/Assets.xcassets/webViewBackgroundColor.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "1.000", + "red" : "1.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.086", + "green" : "0.086", + "red" : "0.086" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/LocalPackages/AIChat/Sources/AIChat/UIColor+Extension.swift b/LocalPackages/AIChat/Sources/AIChat/UIColor+Extension.swift new file mode 100644 index 0000000000..decf4f1c84 --- /dev/null +++ b/LocalPackages/AIChat/Sources/AIChat/UIColor+Extension.swift @@ -0,0 +1,26 @@ +// +// UIColor+Extension.swift +// DuckDuckGo +// +// Copyright © 2024 DuckDuckGo. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import UIKit + +extension UIColor { + static var webViewBackgroundColor: UIColor { + return UIColor(named: "webViewBackgroundColor", in: Bundle.module, compatibleWith: nil) ?? UIColor.red + } +}