From 76e070725d2c897d75f61326bef155c9215bc0cd Mon Sep 17 00:00:00 2001 From: Vanessa Date: Mon, 29 Jan 2024 16:10:47 +0800 Subject: [PATCH] :bug: fix https://github.com/siyuan-note/siyuan/issues/10275 --- app/src/util/assets.ts | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/app/src/util/assets.ts b/app/src/util/assets.ts index 563e32794..9eb26062c 100644 --- a/app/src/util/assets.ts +++ b/app/src/util/assets.ts @@ -312,10 +312,29 @@ export const setMode = (modeElementValue: number) => { /// #endif }; +const rgba2hex = (rgba: string) => { + let a: any; + const rgb: any = rgba.replace(/\s/g, "").match(/^rgba?\((\d+),(\d+),(\d+),?([^,\s)]+)?/i); + const alpha = (rgb && rgb[4] || "").trim(); + let hex = rgb ? + (rgb[1] | 1 << 8).toString(16).slice(1) + + (rgb[2] | 1 << 8).toString(16).slice(1) + + (rgb[3] | 1 << 8).toString(16).slice(1) : rgba; + + if (alpha !== "") { + a = alpha; + } else { + a = 0o1; + } + a = ((a * 255) | 1 << 8).toString(16).slice(1); + hex = hex + a; + return hex; +}; + const updateMobileTheme = (OSTheme: string) => { if (isInIOS() || isInAndroid()) { setTimeout(() => { - const backgroundColor = getComputedStyle(document.body).getPropertyValue("--b3-theme-background").trim().replace(" ", ""); + const backgroundColor = rgba2hex(getComputedStyle(document.body).getPropertyValue("--b3-theme-background").trim().replace(" ", "")); let mode = window.siyuan.config.appearance.mode; if (window.siyuan.config.appearance.modeOS) { if (OSTheme === "dark") {