|
|
@@ -2,62 +2,62 @@
|
|
|
import App from './App.svelte';
|
|
|
import './app.css';
|
|
|
import { delParamsUrl } from './utils/index';
|
|
|
-import { switchTheme } from '../../packages/stdf/theme';
|
|
|
-import themes from '../../demo/src/data/themes';
|
|
|
+import { switchTheme } from 'stdf/theme';
|
|
|
+import themes from './data/themes';
|
|
|
|
|
|
const currentTheme = localStorage.getItem('theme_color') || 'STDF';
|
|
|
// 设置默认主题色
|
|
|
themes.forEach(item => {
|
|
|
- if (item.name === currentTheme) {
|
|
|
- const theme = item.theme;
|
|
|
- switchTheme(theme);
|
|
|
- // 修改 HTML 的 meta name="theme-color" 属性,适配 Safari 的 tab 背景色,需要设置 light 和 dark 两种颜色
|
|
|
- const safariLight = theme.color.primaryWhite;
|
|
|
- const safariDark = theme.color.darkBlack;
|
|
|
- // 查找 meta 标签,name="theme-color" 且 media="(prefers-color-scheme: light)"
|
|
|
- const lightMeta = document.querySelector('meta[name="theme-color"][media="(prefers-color-scheme: light)"]');
|
|
|
- // 查找 meta 标签,name="theme-color" 且 media="(prefers-color-scheme: dark)"
|
|
|
- const darkMeta = document.querySelector('meta[name="theme-color"][media="(prefers-color-scheme: dark)"]');
|
|
|
- // 如果找到了,就修改它的 content 属性
|
|
|
- if (lightMeta) {
|
|
|
- lightMeta.setAttribute('content', safariLight);
|
|
|
- }
|
|
|
- if (darkMeta) {
|
|
|
- darkMeta.setAttribute('content', safariDark);
|
|
|
- }
|
|
|
- }
|
|
|
+ if (item.name === currentTheme) {
|
|
|
+ const theme = item.theme;
|
|
|
+ switchTheme(theme);
|
|
|
+ // 修改 HTML 的 meta name="theme-color" 属性,适配 Safari 的 tab 背景色,需要设置 light 和 dark 两种颜色
|
|
|
+ const safariLight = theme.color.primaryWhite;
|
|
|
+ const safariDark = theme.color.darkBlack;
|
|
|
+ // 查找 meta 标签,name="theme-color" 且 media="(prefers-color-scheme: light)"
|
|
|
+ const lightMeta = document.querySelector('meta[name="theme-color"][media="(prefers-color-scheme: light)"]');
|
|
|
+ // 查找 meta 标签,name="theme-color" 且 media="(prefers-color-scheme: dark)"
|
|
|
+ const darkMeta = document.querySelector('meta[name="theme-color"][media="(prefers-color-scheme: dark)"]');
|
|
|
+ // 如果找到了,就修改它的 content 属性
|
|
|
+ if (lightMeta) {
|
|
|
+ lightMeta.setAttribute('content', safariLight);
|
|
|
+ }
|
|
|
+ if (darkMeta) {
|
|
|
+ darkMeta.setAttribute('content', safariDark);
|
|
|
+ }
|
|
|
+ }
|
|
|
});
|
|
|
|
|
|
let urlLang = window.location.href.split('?')[1];
|
|
|
if (!urlLang || (urlLang && !urlLang.includes('lang'))) {
|
|
|
- if (!localStorage.getItem('lang')) {
|
|
|
- //获取浏览器语言前两位
|
|
|
- const lang = navigator.language.substring(0, 2);
|
|
|
- if (lang === 'en') {
|
|
|
- localStorage.setItem('lang', 'en_US');
|
|
|
- } else {
|
|
|
- localStorage.setItem('lang', 'zh_CN');
|
|
|
- }
|
|
|
- }
|
|
|
+ if (!localStorage.getItem('lang')) {
|
|
|
+ //获取浏览器语言前两位
|
|
|
+ const lang = navigator.language.substring(0, 2);
|
|
|
+ if (lang === 'en') {
|
|
|
+ localStorage.setItem('lang', 'en_US');
|
|
|
+ } else {
|
|
|
+ localStorage.setItem('lang', 'zh_CN');
|
|
|
+ }
|
|
|
+ }
|
|
|
} else {
|
|
|
- let urlParams = new URLSearchParams(urlLang);
|
|
|
- localStorage.setItem('lang', urlParams.get('lang'));
|
|
|
- setTimeout(() => {
|
|
|
- // window.location.href = window.location.href.replace(/(\?|#)[^'"]*/, '');//去除参数
|
|
|
- // @ts-ignore
|
|
|
- window.history.pushState({}, 0, delParamsUrl(window.location.href, 'lang')); //刷新页面
|
|
|
- }, 10);
|
|
|
+ let urlParams = new URLSearchParams(urlLang);
|
|
|
+ localStorage.setItem('lang', urlParams.get('lang'));
|
|
|
+ setTimeout(() => {
|
|
|
+ // window.location.href = window.location.href.replace(/(\?|#)[^'"]*/, '');//去除参数
|
|
|
+ // @ts-ignore
|
|
|
+ window.history.pushState({}, 0, delParamsUrl(window.location.href, 'lang')); //刷新页面
|
|
|
+ }, 10);
|
|
|
}
|
|
|
if (localStorage.getItem('theme') === 'dark') {
|
|
|
- document.documentElement.classList.add('dark');
|
|
|
+ document.documentElement.classList.add('dark');
|
|
|
} else if (localStorage.getItem('theme') === 'light') {
|
|
|
- document.documentElement.classList.remove('dark');
|
|
|
+ document.documentElement.classList.remove('dark');
|
|
|
} else {
|
|
|
- if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
|
|
- document.documentElement.classList.add('dark');
|
|
|
- } else {
|
|
|
- document.documentElement.classList.remove('dark');
|
|
|
- }
|
|
|
+ if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
|
|
+ document.documentElement.classList.add('dark');
|
|
|
+ } else {
|
|
|
+ document.documentElement.classList.remove('dark');
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// 根据亮暗模式动态切换 favicon
|
|
|
@@ -78,5 +78,5 @@ if (localStorage.getItem('theme') === 'dark') {
|
|
|
// darkModeMediaQuery.addEventListener('change', handleDarkmode);
|
|
|
|
|
|
const app = new App({
|
|
|
- target: document.body,
|
|
|
+ target: document.body,
|
|
|
});
|