Files
toor 76a5d71252 refactor: 只保留 Web,移除 Capacitor 原生壳
删除 android/、ios/ 两个 Capacitor 原生工程与 capacitor.config.ts、
ionic.config.json,以及 scripts/android、scripts/ios.sh 构建脚本;
根与 apps/web 的 @capacitor/* 依赖和相关 npm scripts 一并移除。

Web 侧去掉原生分支:登录只走云乐坊容器授权面板或顶层重定向,
暗色模式不再改原生状态栏,移除 Android 物理返回键处理。

保留 @nuxtjs/ionic(Web UI 框架)、云乐坊 window.ylf 桥接与 PWA。

决策记录见 docs/decisions/0004-web-only.md。
2026-10-21 12:27:50 +08:00

43 lines
992 B
TypeScript

import { ionDarkClass } from '~/constants'
/**
* 手动切换暗色时,浏览器状态栏颜色跟随应用而不是系统
*/
function syncThemeColor(color: string) {
document.querySelectorAll<HTMLMetaElement>('meta[name="theme-color"]').forEach(meta => (meta.content = color))
}
export const useDarkMode = createSharedComposable(() => {
const color = useColorMode()
const isDark = computed(() => color.value === 'dark')
function setLightMode() {
document.documentElement.classList.remove(ionDarkClass)
syncThemeColor('#f2f2f6')
}
function setDarkMode() {
document.documentElement.classList.add(ionDarkClass)
syncThemeColor('#000000')
}
return {
color,
isDark,
setLightMode,
setDarkMode,
toggleDark() {
const targetMode = color.value === 'dark' ? 'light' : 'dark'
color.preference = targetMode
if (targetMode === 'dark') {
setDarkMode()
}
else {
setLightMode()
}
},
}
})