@arcblock/ux 2.13.55 → 2.13.56
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
|
-
import { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';
|
2
|
+
import { createContext, useCallback, useContext, useEffect, useMemo, useState, useRef } from 'react';
|
3
3
|
import PropTypes from 'prop-types';
|
4
4
|
import { GlobalStyles } from '@mui/material';
|
5
5
|
import { ThemeProvider as MuiThemeProvider, useTheme } from '@mui/material/styles';
|
@@ -125,6 +125,7 @@ function ColorSchemeProvider({
|
|
125
125
|
const [mode, setMode] = useState(() => resolveMode(prefer));
|
126
126
|
const parentTheme = useTheme();
|
127
127
|
const location = useLocationState();
|
128
|
+
const metaThemeColorRef = useRef(null);
|
128
129
|
const _themeInput = useMemo(() => {
|
129
130
|
let result = {};
|
130
131
|
const createBaseTheme = lazyCreateDefaultTheme(mode);
|
@@ -192,6 +193,23 @@ function ColorSchemeProvider({
|
|
192
193
|
sessionStorage.setItem(BLOCKLET_THEME_PREFER_KEY, urlTheme);
|
193
194
|
}
|
194
195
|
}, [location.search]);
|
196
|
+
|
197
|
+
// 动态设置 <meta name="theme-color" content="..."> 标签,用于控制移动端浏览器状态栏颜色
|
198
|
+
useEffect(() => {
|
199
|
+
if (!metaThemeColorRef.current) {
|
200
|
+
metaThemeColorRef.current = document.querySelector('meta[name="theme-color"]');
|
201
|
+
}
|
202
|
+
const bgcolor = theme.palette.background.default;
|
203
|
+
if (metaThemeColorRef.current) {
|
204
|
+
metaThemeColorRef.current.setAttribute('content', bgcolor);
|
205
|
+
} else {
|
206
|
+
const meta = document.createElement('meta');
|
207
|
+
meta.name = 'theme-color';
|
208
|
+
meta.content = bgcolor;
|
209
|
+
document.head.appendChild(meta);
|
210
|
+
metaThemeColorRef.current = meta;
|
211
|
+
}
|
212
|
+
}, [theme.palette.background.default]);
|
195
213
|
return /*#__PURE__*/_jsx(ColorSchemeContext.Provider, {
|
196
214
|
value: colorSchemeValue,
|
197
215
|
children: /*#__PURE__*/_jsx(BaseThemeProvider, {
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@arcblock/ux",
|
3
|
-
"version": "2.13.
|
3
|
+
"version": "2.13.56",
|
4
4
|
"description": "Common used react components for arcblock products",
|
5
5
|
"keywords": [
|
6
6
|
"react",
|
@@ -71,14 +71,14 @@
|
|
71
71
|
"react": ">=18.2.0",
|
72
72
|
"react-router-dom": ">=6.22.3"
|
73
73
|
},
|
74
|
-
"gitHead": "
|
74
|
+
"gitHead": "ebf7d863313f1ce95571b81df01182756395197e",
|
75
75
|
"dependencies": {
|
76
76
|
"@arcblock/did-motif": "^1.1.13",
|
77
|
-
"@arcblock/icons": "^2.13.
|
78
|
-
"@arcblock/nft-display": "^2.13.
|
79
|
-
"@arcblock/react-hooks": "^2.13.
|
77
|
+
"@arcblock/icons": "^2.13.56",
|
78
|
+
"@arcblock/nft-display": "^2.13.56",
|
79
|
+
"@arcblock/react-hooks": "^2.13.56",
|
80
80
|
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
|
81
|
-
"@blocklet/theme": "^2.13.
|
81
|
+
"@blocklet/theme": "^2.13.56",
|
82
82
|
"@fontsource/roboto": "~5.1.1",
|
83
83
|
"@fontsource/ubuntu-mono": "^5.0.18",
|
84
84
|
"@iconify-icons/logos": "^1.2.36",
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';
|
1
|
+
import { createContext, useCallback, useContext, useEffect, useMemo, useState, useRef } from 'react';
|
2
2
|
import PropTypes from 'prop-types';
|
3
3
|
import { GlobalStyles, PaletteMode } from '@mui/material';
|
4
4
|
import { ThemeProvider as MuiThemeProvider, Theme, ThemeOptions, useTheme } from '@mui/material/styles';
|
@@ -161,6 +161,7 @@ function ColorSchemeProvider({
|
|
161
161
|
const [mode, setMode] = useState<PaletteMode>(() => resolveMode(prefer));
|
162
162
|
const parentTheme = useTheme();
|
163
163
|
const location = useLocationState();
|
164
|
+
const metaThemeColorRef = useRef<HTMLMetaElement | null>(null);
|
164
165
|
|
165
166
|
const _themeInput = useMemo(() => {
|
166
167
|
let result: UxThemeOptions = {};
|
@@ -231,6 +232,25 @@ function ColorSchemeProvider({
|
|
231
232
|
}
|
232
233
|
}, [location.search]);
|
233
234
|
|
235
|
+
// 动态设置 <meta name="theme-color" content="..."> 标签,用于控制移动端浏览器状态栏颜色
|
236
|
+
useEffect(() => {
|
237
|
+
if (!metaThemeColorRef.current) {
|
238
|
+
metaThemeColorRef.current = document.querySelector('meta[name="theme-color"]');
|
239
|
+
}
|
240
|
+
|
241
|
+
const bgcolor = theme.palette.background.default;
|
242
|
+
|
243
|
+
if (metaThemeColorRef.current) {
|
244
|
+
metaThemeColorRef.current.setAttribute('content', bgcolor);
|
245
|
+
} else {
|
246
|
+
const meta = document.createElement('meta');
|
247
|
+
meta.name = 'theme-color';
|
248
|
+
meta.content = bgcolor;
|
249
|
+
document.head.appendChild(meta);
|
250
|
+
metaThemeColorRef.current = meta;
|
251
|
+
}
|
252
|
+
}, [theme.palette.background.default]);
|
253
|
+
|
234
254
|
return (
|
235
255
|
<ColorSchemeContext.Provider value={colorSchemeValue}>
|
236
256
|
<BaseThemeProvider theme={theme} {...rest}>
|