dumi 2.2.1-alpha.0 → 2.2.2
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.
- package/compiled/crates/swc_plugin_react_demo.wasm +0 -0
- package/dist/assetParsers/atom.js +15 -5
- package/dist/assetParsers/block.js +27 -9
- package/dist/cli.js +8 -1
- package/dist/client/pages/Demo/index.js +3 -8
- package/dist/client/theme-api/AtomRenderer.d.ts +2 -2
- package/dist/client/theme-api/AtomRenderer.js +19 -35
- package/dist/client/theme-api/DumiDemo.js +8 -13
- package/dist/client/theme-api/DumiDemoGrid.js +12 -26
- package/dist/client/theme-api/DumiPage.js +16 -34
- package/dist/client/theme-api/openCodeSandbox.js +28 -26
- package/dist/client/theme-api/openStackBlitz.js +15 -16
- package/dist/client/theme-api/types.d.ts +15 -12
- package/dist/client/theme-api/useAtomAssets.js +1 -2
- package/dist/client/theme-api/useLocale.js +10 -19
- package/dist/client/theme-api/useNavData.js +78 -103
- package/dist/client/theme-api/usePrefersColor.d.ts +2 -2
- package/dist/client/theme-api/usePrefersColor.js +39 -66
- package/dist/client/theme-api/useRouteMeta.js +9 -23
- package/dist/client/theme-api/useSidebarData.js +124 -158
- package/dist/client/theme-api/useSiteSearch/index.d.ts +1 -1
- package/dist/client/theme-api/useSiteSearch/index.js +24 -38
- package/dist/client/theme-api/useTabMeta.js +8 -19
- package/dist/client/theme-api/utils.d.ts +6 -0
- package/dist/client/theme-api/utils.js +40 -46
- package/dist/client/typings.d.ts +0 -5
- package/dist/constants.d.ts +1 -0
- package/dist/constants.js +3 -0
- package/dist/features/assets.js +23 -4
- package/dist/features/autoAlias.js +8 -3
- package/dist/features/compile/babelLoaderCustomize.js +0 -2
- package/dist/features/compile/index.js +22 -10
- package/dist/features/configPlugins/index.js +3 -4
- package/dist/features/configPlugins/schema.d.ts +1 -1
- package/dist/features/configPlugins/schema.js +20 -3
- package/dist/features/derivative.js +54 -11
- package/dist/features/exportStatic.js +11 -7
- package/dist/features/exports.js +8 -3
- package/dist/features/html2sketch.js +7 -5
- package/dist/features/locales.js +53 -17
- package/dist/features/meta.js +23 -10
- package/dist/features/parser.js +17 -5
- package/dist/features/routes.js +63 -24
- package/dist/features/sideEffects/docSideEffectsWebpackPlugin.js +27 -16
- package/dist/features/sideEffects/index.js +13 -4
- package/dist/features/sitemap.js +17 -5
- package/dist/features/tabs.js +23 -11
- package/dist/features/theme/index.js +152 -39
- package/dist/features/theme/loader.js +23 -7
- package/dist/index.js +10 -2
- package/dist/loaders/demo/index.js +3 -3
- package/dist/loaders/markdown/index.d.ts +1 -1
- package/dist/loaders/markdown/index.js +36 -24
- package/dist/loaders/markdown/transformer/index.d.ts +4 -2
- package/dist/loaders/markdown/transformer/index.js +48 -19
- package/dist/loaders/markdown/transformer/rehypeDemo.d.ts +3 -1
- package/dist/loaders/markdown/transformer/rehypeDemo.js +125 -68
- package/dist/loaders/markdown/transformer/rehypeDesc.js +8 -3
- package/dist/loaders/markdown/transformer/rehypeEnhancedTag.js +8 -3
- package/dist/loaders/markdown/transformer/rehypeHighlightLine.js +8 -3
- package/dist/loaders/markdown/transformer/rehypeImg.js +8 -3
- package/dist/loaders/markdown/transformer/rehypeIsolation.js +36 -21
- package/dist/loaders/markdown/transformer/rehypeJsxify.js +8 -3
- package/dist/loaders/markdown/transformer/rehypeLink.d.ts +1 -1
- package/dist/loaders/markdown/transformer/rehypeLink.js +24 -9
- package/dist/loaders/markdown/transformer/rehypeRaw.d.ts +1 -1
- package/dist/loaders/markdown/transformer/rehypeRaw.js +20 -6
- package/dist/loaders/markdown/transformer/rehypeSlug.js +16 -3
- package/dist/loaders/markdown/transformer/rehypeStrip.js +8 -3
- package/dist/loaders/markdown/transformer/rehypeText.js +14 -5
- package/dist/loaders/markdown/transformer/remarkBreaks.d.ts +3 -0
- package/dist/loaders/markdown/transformer/remarkBreaks.js +65 -0
- package/dist/loaders/markdown/transformer/remarkContainer.js +28 -13
- package/dist/loaders/markdown/transformer/remarkEmbed.js +43 -21
- package/dist/loaders/markdown/transformer/remarkMeta.d.ts +3 -1
- package/dist/loaders/markdown/transformer/remarkMeta.js +39 -9
- package/dist/loaders/page/index.js +12 -4
- package/dist/loaders/pre-raw/index.js +0 -2
- package/dist/preset.js +8 -3
- package/dist/registerMethods.js +0 -2
- package/dist/service/dev.js +8 -1
- package/dist/service/printHelp.js +3 -1
- package/dist/techStacks/react.js +8 -3
- package/dist/types.d.ts +6 -6
- package/dist/utils.d.ts +1 -1
- package/dist/utils.js +15 -6
- package/package.json +12 -10
- package/theme-default/builtins/API/index.js +15 -36
- package/theme-default/builtins/Badge/index.js +0 -3
- package/theme-default/builtins/Container/index.js +6 -15
- package/theme-default/builtins/Previewer/index.js +1 -8
- package/theme-default/builtins/SourceCode/index.js +15 -27
- package/theme-default/builtins/Table/index.js +10 -25
- package/theme-default/builtins/Tree/index.js +13 -44
- package/theme-default/layouts/DocLayout/index.js +14 -27
- package/theme-default/locales/en-US.json +4 -0
- package/theme-default/locales/zh-CN.json +4 -0
- package/theme-default/slots/ColorSwitch/index.js +7 -22
- package/theme-default/slots/Content/index.js +5 -7
- package/theme-default/slots/Content/index.less +16 -1
- package/theme-default/slots/ContentFooter/index.d.ts +4 -0
- package/theme-default/slots/ContentFooter/index.js +93 -0
- package/theme-default/slots/ContentFooter/index.less +163 -0
- package/theme-default/slots/ContentTabs/index.d.ts +1 -1
- package/theme-default/slots/ContentTabs/index.js +5 -5
- package/theme-default/slots/Features/index.js +6 -11
- package/theme-default/slots/Footer/index.js +1 -4
- package/theme-default/slots/Header/index.js +7 -18
- package/theme-default/slots/HeaderExtra/index.js +0 -2
- package/theme-default/slots/Hero/index.js +2 -6
- package/theme-default/slots/HeroTitle/index.js +0 -2
- package/theme-default/slots/LangSwitch/index.js +23 -35
- package/theme-default/slots/Logo/index.js +1 -4
- package/theme-default/slots/Navbar/index.js +14 -29
- package/theme-default/slots/NavbarExtra/index.js +0 -2
- package/theme-default/slots/NotFound/index.js +0 -2
- package/theme-default/slots/PreviewerActions/index.js +13 -35
- package/theme-default/slots/PreviewerActionsExtra/index.js +0 -2
- package/theme-default/slots/RtlSwitch/index.js +6 -20
- package/theme-default/slots/RtlSwitch/index.less +5 -0
- package/theme-default/slots/SearchBar/Input.d.ts +1 -1
- package/theme-default/slots/SearchBar/Input.js +6 -5
- package/theme-default/slots/SearchBar/Mask.d.ts +1 -1
- package/theme-default/slots/SearchBar/Mask.js +0 -1
- package/theme-default/slots/SearchBar/index.js +20 -41
- package/theme-default/slots/SearchResult/index.d.ts +1 -1
- package/theme-default/slots/SearchResult/index.js +13 -36
- package/theme-default/slots/Sidebar/index.js +1 -4
- package/theme-default/slots/SocialIcon/index.d.ts +2 -2
- package/theme-default/slots/SocialIcon/index.js +1 -3
- package/theme-default/slots/Toc/index.js +12 -28
|
@@ -1,74 +1,57 @@
|
|
|
1
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
1
2
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
|
-
|
|
3
3
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
4
|
-
|
|
5
4
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
6
|
-
|
|
7
|
-
function
|
|
8
|
-
|
|
9
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
10
|
-
|
|
5
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
6
|
+
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
11
7
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
12
|
-
|
|
13
8
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
14
|
-
|
|
15
|
-
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
16
|
-
|
|
9
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
17
10
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
18
|
-
|
|
19
|
-
function
|
|
20
|
-
|
|
11
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
12
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
13
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
21
14
|
import { PREFERS_COLOR_ATTR, PREFERS_COLOR_LS_KEY } from "../../constants";
|
|
22
15
|
import { useSiteData } from 'dumi';
|
|
23
16
|
import { useCallback, useEffect, useState } from 'react';
|
|
24
17
|
var colorChanger;
|
|
25
|
-
|
|
26
18
|
var ColorChanger = /*#__PURE__*/function () {
|
|
27
|
-
/**
|
|
28
|
-
* current color
|
|
29
|
-
* @note exclude `auto`
|
|
30
|
-
*/
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* current prefers color
|
|
34
|
-
* @note include `auto`
|
|
35
|
-
*/
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* color change callbacks
|
|
39
|
-
*/
|
|
40
19
|
function ColorChanger(opts) {
|
|
41
20
|
var _this = this;
|
|
42
|
-
|
|
43
21
|
_classCallCheck(this, ColorChanger);
|
|
44
|
-
|
|
22
|
+
/**
|
|
23
|
+
* current color
|
|
24
|
+
* @note exclude `auto`
|
|
25
|
+
*/
|
|
45
26
|
_defineProperty(this, "color", void 0);
|
|
46
|
-
|
|
27
|
+
/**
|
|
28
|
+
* current prefers color
|
|
29
|
+
* @note include `auto`
|
|
30
|
+
*/
|
|
47
31
|
_defineProperty(this, "prefersColor", void 0);
|
|
48
|
-
|
|
32
|
+
/**
|
|
33
|
+
* color change callbacks
|
|
34
|
+
*/
|
|
49
35
|
_defineProperty(this, "callbacks", []);
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
localStorage.getItem(PREFERS_COLOR_LS_KEY) ||
|
|
36
|
+
this.prefersColor = navigator.cookieEnabled &&
|
|
37
|
+
// read from localStorage first, because `auto` will not be set to attr
|
|
38
|
+
localStorage.getItem(PREFERS_COLOR_LS_KEY) ||
|
|
39
|
+
// then use default value from themeConfig
|
|
53
40
|
opts.default;
|
|
54
|
-
this.color = document.documentElement.getAttribute(PREFERS_COLOR_ATTR);
|
|
55
|
-
|
|
41
|
+
this.color = document.documentElement.getAttribute(PREFERS_COLOR_ATTR);
|
|
42
|
+
// listen prefers color change
|
|
56
43
|
['light', 'dark'].forEach(function (color) {
|
|
57
44
|
var mediaQueryList = _this.getColorMedia(color);
|
|
58
|
-
|
|
59
45
|
var handler = function handler(ev) {
|
|
60
46
|
// only apply media prefers color in auto mode
|
|
61
47
|
if (ev.matches && _this.prefersColor === 'auto') {
|
|
62
48
|
_this.color = color;
|
|
63
49
|
document.documentElement.setAttribute(PREFERS_COLOR_ATTR, color);
|
|
64
|
-
|
|
65
50
|
_this.applyCallbacks();
|
|
66
51
|
}
|
|
67
|
-
};
|
|
68
|
-
|
|
52
|
+
};
|
|
53
|
+
// compatible with Safari 13-
|
|
69
54
|
/* istanbul ignore else */
|
|
70
|
-
|
|
71
|
-
|
|
72
55
|
if (mediaQueryList.addEventListener) {
|
|
73
56
|
mediaQueryList.addEventListener('change', handler);
|
|
74
57
|
} else if (mediaQueryList.addListener) {
|
|
@@ -76,36 +59,34 @@ var ColorChanger = /*#__PURE__*/function () {
|
|
|
76
59
|
}
|
|
77
60
|
});
|
|
78
61
|
}
|
|
62
|
+
|
|
79
63
|
/**
|
|
80
64
|
* get media instance for prefers color
|
|
81
65
|
* @param color prefers color
|
|
82
66
|
*/
|
|
83
|
-
|
|
84
|
-
|
|
85
67
|
_createClass(ColorChanger, [{
|
|
86
68
|
key: "getColorMedia",
|
|
87
69
|
value: function getColorMedia(color) {
|
|
88
70
|
return window.matchMedia("(prefers-color-scheme: ".concat(color, ")"));
|
|
89
71
|
}
|
|
72
|
+
|
|
90
73
|
/**
|
|
91
74
|
* detect color whether matches current color mode
|
|
92
75
|
* @param color expected color
|
|
93
76
|
*/
|
|
94
|
-
|
|
95
77
|
}, {
|
|
96
78
|
key: "isColorMode",
|
|
97
79
|
value: function isColorMode(color) {
|
|
98
80
|
return this.getColorMedia(color).matches;
|
|
99
81
|
}
|
|
82
|
+
|
|
100
83
|
/**
|
|
101
84
|
* apply all event change callbacks
|
|
102
85
|
*/
|
|
103
|
-
|
|
104
86
|
}, {
|
|
105
87
|
key: "applyCallbacks",
|
|
106
88
|
value: function applyCallbacks() {
|
|
107
89
|
var _this2 = this;
|
|
108
|
-
|
|
109
90
|
this.callbacks.forEach(function (cb) {
|
|
110
91
|
return cb({
|
|
111
92
|
color: _this2.color,
|
|
@@ -113,37 +94,36 @@ var ColorChanger = /*#__PURE__*/function () {
|
|
|
113
94
|
});
|
|
114
95
|
});
|
|
115
96
|
}
|
|
97
|
+
|
|
116
98
|
/**
|
|
117
99
|
* listen color change
|
|
118
100
|
* @param cb callback
|
|
119
101
|
*/
|
|
120
|
-
|
|
121
102
|
}, {
|
|
122
103
|
key: "listen",
|
|
123
104
|
value: function listen(cb) {
|
|
124
105
|
this.callbacks.push(cb);
|
|
125
106
|
}
|
|
107
|
+
|
|
126
108
|
/**
|
|
127
109
|
* unlisten color change
|
|
128
110
|
* @param cb callback
|
|
129
111
|
*/
|
|
130
|
-
|
|
131
112
|
}, {
|
|
132
113
|
key: "unlisten",
|
|
133
114
|
value: function unlisten(cb) {
|
|
134
115
|
this.callbacks.splice(this.callbacks.indexOf(cb), 1);
|
|
135
116
|
}
|
|
117
|
+
|
|
136
118
|
/**
|
|
137
119
|
* set prefers color
|
|
138
120
|
*/
|
|
139
|
-
|
|
140
121
|
}, {
|
|
141
122
|
key: "tryPrefersColor",
|
|
142
123
|
value: function tryPrefersColor(color) {
|
|
143
124
|
if (navigator.cookieEnabled) {
|
|
144
125
|
localStorage.setItem(PREFERS_COLOR_LS_KEY, color);
|
|
145
126
|
}
|
|
146
|
-
|
|
147
127
|
this.prefersColor = color;
|
|
148
128
|
this.color = color === 'auto' ? this.isColorMode('dark') ? 'dark' : 'light' : color;
|
|
149
129
|
document.documentElement.setAttribute(PREFERS_COLOR_ATTR, color);
|
|
@@ -151,29 +131,23 @@ var ColorChanger = /*#__PURE__*/function () {
|
|
|
151
131
|
return color;
|
|
152
132
|
}
|
|
153
133
|
}]);
|
|
154
|
-
|
|
155
134
|
return ColorChanger;
|
|
156
135
|
}();
|
|
157
136
|
/**
|
|
158
137
|
* hook for get/set prefers-color-schema, use to control color mode for theme package
|
|
159
138
|
* @see https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme
|
|
160
139
|
*/
|
|
161
|
-
|
|
162
|
-
|
|
163
140
|
export var usePrefersColor = function usePrefersColor() {
|
|
164
141
|
var _useSiteData = useSiteData(),
|
|
165
|
-
|
|
166
|
-
|
|
142
|
+
themeConfig = _useSiteData.themeConfig;
|
|
167
143
|
var _useState = useState(),
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
144
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
145
|
+
color = _useState2[0],
|
|
146
|
+
setColor = _useState2[1];
|
|
172
147
|
var _useState3 = useState(),
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
148
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
149
|
+
prefersColor = _useState4[0],
|
|
150
|
+
setPrefersColor = _useState4[1];
|
|
177
151
|
var tryPrefersColor = useCallback(function (val) {
|
|
178
152
|
colorChanger.tryPrefersColor(val);
|
|
179
153
|
}, []);
|
|
@@ -183,7 +157,6 @@ export var usePrefersColor = function usePrefersColor() {
|
|
|
183
157
|
}, []);
|
|
184
158
|
useEffect(function () {
|
|
185
159
|
var _colorChanger;
|
|
186
|
-
|
|
187
160
|
// lazy initialize, for SSR
|
|
188
161
|
(_colorChanger = colorChanger) !== null && _colorChanger !== void 0 ? _colorChanger : colorChanger = new ColorChanger({
|
|
189
162
|
default: themeConfig.prefersColor.default
|
|
@@ -1,58 +1,44 @@
|
|
|
1
1
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
|
-
|
|
3
2
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
4
|
-
|
|
5
3
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
6
|
-
|
|
7
|
-
function
|
|
8
|
-
|
|
9
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
10
|
-
|
|
4
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
5
|
+
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
11
6
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
12
|
-
|
|
13
7
|
import { matchRoutes, useAppData, useLocation, useRouteData } from 'dumi';
|
|
14
8
|
import { useCallback, useState } from 'react';
|
|
15
9
|
import { useIsomorphicLayoutEffect } from "./utils";
|
|
10
|
+
|
|
16
11
|
/**
|
|
17
12
|
* hook for get matched route meta
|
|
18
13
|
*/
|
|
19
|
-
|
|
20
14
|
export var useRouteMeta = function useRouteMeta() {
|
|
21
15
|
var _useRouteData = useRouteData(),
|
|
22
|
-
|
|
23
|
-
|
|
16
|
+
route = _useRouteData.route;
|
|
24
17
|
var _useLocation = useLocation(),
|
|
25
|
-
|
|
26
|
-
|
|
18
|
+
pathname = _useLocation.pathname;
|
|
27
19
|
var _useAppData = useAppData(),
|
|
28
|
-
|
|
29
|
-
|
|
20
|
+
clientRoutes = _useAppData.clientRoutes;
|
|
30
21
|
var getter = useCallback(function () {
|
|
31
22
|
var ret;
|
|
32
|
-
|
|
33
23
|
if (route.path === pathname && !('isLayout' in route)) {
|
|
34
24
|
// use `useRouteData` result if matched, for performance
|
|
35
25
|
ret = route.meta;
|
|
36
26
|
} else {
|
|
37
27
|
var _matchRoutes, _matched$route;
|
|
38
|
-
|
|
39
28
|
// match manually for dynamic route & layout component
|
|
40
29
|
var matched = (_matchRoutes = matchRoutes(clientRoutes, pathname)) === null || _matchRoutes === void 0 ? void 0 : _matchRoutes.pop();
|
|
41
30
|
ret = matched === null || matched === void 0 ? void 0 : (_matched$route = matched.route) === null || _matched$route === void 0 ? void 0 : _matched$route.meta;
|
|
42
31
|
}
|
|
43
|
-
|
|
44
32
|
return ret || {
|
|
45
33
|
frontmatter: {},
|
|
46
34
|
toc: [],
|
|
47
35
|
texts: []
|
|
48
36
|
};
|
|
49
37
|
}, [clientRoutes.length, pathname]);
|
|
50
|
-
|
|
51
38
|
var _useState = useState(getter),
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
39
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
40
|
+
meta = _useState2[0],
|
|
41
|
+
setMeta = _useState2[1];
|
|
56
42
|
useIsomorphicLayoutEffect(function () {
|
|
57
43
|
setMeta(getter);
|
|
58
44
|
}, [clientRoutes.length, pathname]);
|