From a733ea381b51286a8a084f47f0925ac3a7bc5289 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Thu, 21 Nov 2024 14:49:51 -0800 Subject: [PATCH] macos: OSColor.hexString must be able to compile with UIKit --- macos/Sources/Helpers/OSColor+Extension.swift | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/macos/Sources/Helpers/OSColor+Extension.swift b/macos/Sources/Helpers/OSColor+Extension.swift index 7cdfcc1e6..2d08e1cd2 100644 --- a/macos/Sources/Helpers/OSColor+Extension.swift +++ b/macos/Sources/Helpers/OSColor+Extension.swift @@ -22,11 +22,29 @@ extension OSColor { } var hexString: String? { +#if canImport(AppKit) guard let rgb = usingColorSpace(.deviceRGB) else { return nil } let red = Int(rgb.redComponent * 255) let green = Int(rgb.greenComponent * 255) let blue = Int(rgb.blueComponent * 255) return String(format: "#%02X%02X%02X", red, green, blue) +#elseif canImport(UIKit) + var red: CGFloat = 0 + var green: CGFloat = 0 + var blue: CGFloat = 0 + var alpha: CGFloat = 0 + guard self.getRed(&red, green: &green, blue: &blue, alpha: &alpha) else { + return nil + } + + // Convert to 0–255 range + let r = Int(red * 255) + let g = Int(green * 255) + let b = Int(blue * 255) + + // Format to hexadecimal + return String(format: "#%02X%02X%02X", r, g, b) +#endif } func darken(by amount: CGFloat) -> OSColor {