@next-core/react-runtime 1.7.47 → 1.9.0

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.
Files changed (46) hide show
  1. package/dist/cjs/index.js +88 -0
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/useAuth.js +30 -0
  4. package/dist/cjs/useAuth.js.map +1 -0
  5. package/dist/cjs/useFeatureFlags.js +51 -0
  6. package/dist/cjs/useFeatureFlags.js.map +1 -0
  7. package/dist/cjs/useHistory.js +28 -0
  8. package/dist/cjs/useHistory.js.map +1 -0
  9. package/dist/cjs/useLocation.js +34 -0
  10. package/dist/cjs/useLocation.js.map +1 -0
  11. package/dist/cjs/useParams.js +57 -0
  12. package/dist/cjs/useParams.js.map +1 -0
  13. package/dist/cjs/usePathParams.js +60 -0
  14. package/dist/cjs/usePathParams.js.map +1 -0
  15. package/dist/cjs/useSearchParams.js +34 -0
  16. package/dist/cjs/useSearchParams.js.map +1 -0
  17. package/dist/cjs/useSystemInfo.js +74 -0
  18. package/dist/cjs/useSystemInfo.js.map +1 -0
  19. package/dist/esm/index.js +8 -0
  20. package/dist/esm/index.js.map +1 -1
  21. package/dist/esm/useAuth.js +23 -0
  22. package/dist/esm/useAuth.js.map +1 -0
  23. package/dist/esm/useFeatureFlags.js +44 -0
  24. package/dist/esm/useFeatureFlags.js.map +1 -0
  25. package/dist/esm/useHistory.js +23 -0
  26. package/dist/esm/useHistory.js.map +1 -0
  27. package/dist/esm/useLocation.js +28 -0
  28. package/dist/esm/useLocation.js.map +1 -0
  29. package/dist/esm/useParams.js +51 -0
  30. package/dist/esm/useParams.js.map +1 -0
  31. package/dist/esm/usePathParams.js +54 -0
  32. package/dist/esm/usePathParams.js.map +1 -0
  33. package/dist/esm/useSearchParams.js +28 -0
  34. package/dist/esm/useSearchParams.js.map +1 -0
  35. package/dist/esm/useSystemInfo.js +68 -0
  36. package/dist/esm/useSystemInfo.js.map +1 -0
  37. package/dist/types/index.d.ts +8 -0
  38. package/dist/types/useAuth.d.ts +20 -0
  39. package/dist/types/useFeatureFlags.d.ts +40 -0
  40. package/dist/types/useHistory.d.ts +19 -0
  41. package/dist/types/useLocation.d.ts +16 -0
  42. package/dist/types/useParams.d.ts +24 -0
  43. package/dist/types/usePathParams.d.ts +21 -0
  44. package/dist/types/useSearchParams.d.ts +15 -0
  45. package/dist/types/useSystemInfo.d.ts +62 -0
  46. package/package.json +2 -2
package/dist/cjs/index.js CHANGED
@@ -102,4 +102,92 @@ Object.keys(_useLazyWrapBrick).forEach(function (key) {
102
102
  }
103
103
  });
104
104
  });
105
+ var _usePathParams = require("./usePathParams.js");
106
+ Object.keys(_usePathParams).forEach(function (key) {
107
+ if (key === "default" || key === "__esModule") return;
108
+ if (key in exports && exports[key] === _usePathParams[key]) return;
109
+ Object.defineProperty(exports, key, {
110
+ enumerable: true,
111
+ get: function () {
112
+ return _usePathParams[key];
113
+ }
114
+ });
115
+ });
116
+ var _useSearchParams = require("./useSearchParams.js");
117
+ Object.keys(_useSearchParams).forEach(function (key) {
118
+ if (key === "default" || key === "__esModule") return;
119
+ if (key in exports && exports[key] === _useSearchParams[key]) return;
120
+ Object.defineProperty(exports, key, {
121
+ enumerable: true,
122
+ get: function () {
123
+ return _useSearchParams[key];
124
+ }
125
+ });
126
+ });
127
+ var _useParams = require("./useParams.js");
128
+ Object.keys(_useParams).forEach(function (key) {
129
+ if (key === "default" || key === "__esModule") return;
130
+ if (key in exports && exports[key] === _useParams[key]) return;
131
+ Object.defineProperty(exports, key, {
132
+ enumerable: true,
133
+ get: function () {
134
+ return _useParams[key];
135
+ }
136
+ });
137
+ });
138
+ var _useHistory = require("./useHistory.js");
139
+ Object.keys(_useHistory).forEach(function (key) {
140
+ if (key === "default" || key === "__esModule") return;
141
+ if (key in exports && exports[key] === _useHistory[key]) return;
142
+ Object.defineProperty(exports, key, {
143
+ enumerable: true,
144
+ get: function () {
145
+ return _useHistory[key];
146
+ }
147
+ });
148
+ });
149
+ var _useAuth = require("./useAuth.js");
150
+ Object.keys(_useAuth).forEach(function (key) {
151
+ if (key === "default" || key === "__esModule") return;
152
+ if (key in exports && exports[key] === _useAuth[key]) return;
153
+ Object.defineProperty(exports, key, {
154
+ enumerable: true,
155
+ get: function () {
156
+ return _useAuth[key];
157
+ }
158
+ });
159
+ });
160
+ var _useLocation = require("./useLocation.js");
161
+ Object.keys(_useLocation).forEach(function (key) {
162
+ if (key === "default" || key === "__esModule") return;
163
+ if (key in exports && exports[key] === _useLocation[key]) return;
164
+ Object.defineProperty(exports, key, {
165
+ enumerable: true,
166
+ get: function () {
167
+ return _useLocation[key];
168
+ }
169
+ });
170
+ });
171
+ var _useFeatureFlags = require("./useFeatureFlags.js");
172
+ Object.keys(_useFeatureFlags).forEach(function (key) {
173
+ if (key === "default" || key === "__esModule") return;
174
+ if (key in exports && exports[key] === _useFeatureFlags[key]) return;
175
+ Object.defineProperty(exports, key, {
176
+ enumerable: true,
177
+ get: function () {
178
+ return _useFeatureFlags[key];
179
+ }
180
+ });
181
+ });
182
+ var _useSystemInfo = require("./useSystemInfo.js");
183
+ Object.keys(_useSystemInfo).forEach(function (key) {
184
+ if (key === "default" || key === "__esModule") return;
185
+ if (key in exports && exports[key] === _useSystemInfo[key]) return;
186
+ Object.defineProperty(exports, key, {
187
+ enumerable: true,
188
+ get: function () {
189
+ return _useSystemInfo[key];
190
+ }
191
+ });
192
+ });
105
193
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_ReactUseBrick","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_useCurrentTheme","_useCurrentApp","_useRecentApps","_useRouteRender","_useProvider","_asyncWrapBrick","_useNavConfig","_useLazyWrapBrick"],"sources":["../../src/index.ts"],"sourcesContent":["export * from \"./ReactUseBrick.js\";\nexport * from \"./useCurrentTheme.js\";\nexport * from \"./useCurrentApp.js\";\nexport * from \"./useRecentApps.js\";\nexport * from \"./useRouteRender.js\";\nexport * from \"./useProvider/useProvider.js\";\nexport * from \"./asyncWrapBrick.js\";\nexport * from \"./useNavConfig.js\";\nexport * from \"./useLazyWrapBrick.js\";\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_ReactUseBrick","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_useCurrentTheme","_useCurrentApp","_useRecentApps","_useRouteRender","_useProvider","_asyncWrapBrick","_useNavConfig","_useLazyWrapBrick","_usePathParams","_useSearchParams","_useParams","_useHistory","_useAuth","_useLocation","_useFeatureFlags","_useSystemInfo"],"sources":["../../src/index.ts"],"sourcesContent":["export * from \"./ReactUseBrick.js\";\nexport * from \"./useCurrentTheme.js\";\nexport * from \"./useCurrentApp.js\";\nexport * from \"./useRecentApps.js\";\nexport * from \"./useRouteRender.js\";\nexport * from \"./useProvider/useProvider.js\";\nexport * from \"./asyncWrapBrick.js\";\nexport * from \"./useNavConfig.js\";\nexport * from \"./useLazyWrapBrick.js\";\nexport * from \"./usePathParams.js\";\nexport * from \"./useSearchParams.js\";\nexport * from \"./useParams.js\";\nexport * from \"./useHistory.js\";\nexport * from \"./useAuth.js\";\nexport * from \"./useLocation.js\";\nexport * from \"./useFeatureFlags.js\";\nexport * from \"./useSystemInfo.js\";\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useAuth = useAuth;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _easyopsRuntime = require("@next-core/easyops-runtime");
10
+ /**
11
+ * 获取用户认证信息的 React hooks。
12
+ *
13
+ * **注意**: 使用 useMemo 确保返回的认证信息对象引用稳定,
14
+ * 避免不必要的组件重渲染。认证信息在会话期间保持不变。
15
+ *
16
+ * @example
17
+ *
18
+ * ```tsx
19
+ * function MyReactComponent() {
20
+ * const authInfo = useAuth();
21
+ * return <div>Username: {authInfo.username}</div>;
22
+ * }
23
+ * ```
24
+ *
25
+ * @returns 当前用户的认证信息对象。
26
+ */
27
+ function useAuth() {
28
+ return _react.default.useMemo(() => _easyopsRuntime.auth.getAuth(), []);
29
+ }
30
+ //# sourceMappingURL=useAuth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAuth.js","names":["_react","_interopRequireDefault","require","_easyopsRuntime","useAuth","React","useMemo","auth","getAuth"],"sources":["../../src/useAuth.ts"],"sourcesContent":["import React from \"react\";\nimport { auth } from \"@next-core/easyops-runtime\";\n\nexport type AuthInfo = ReturnType<typeof auth.getAuth>;\n\n/**\n * 获取用户认证信息的 React hooks。\n *\n * **注意**: 使用 useMemo 确保返回的认证信息对象引用稳定,\n * 避免不必要的组件重渲染。认证信息在会话期间保持不变。\n *\n * @example\n *\n * ```tsx\n * function MyReactComponent() {\n * const authInfo = useAuth();\n * return <div>Username: {authInfo.username}</div>;\n * }\n * ```\n *\n * @returns 当前用户的认证信息对象。\n */\nexport function useAuth(): AuthInfo {\n return React.useMemo(() => auth.getAuth(), []);\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,OAAOA,CAAA,EAAa;EAClC,OAAOC,cAAK,CAACC,OAAO,CAAC,MAAMC,oBAAI,CAACC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC;AAChD","ignoreList":[]}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useFeatureFlags = useFeatureFlags;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _runtime = require("@next-core/runtime");
10
+ /**
11
+ * 获取特性开关配置的 React hooks。
12
+ *
13
+ * 特性开关用于控制功能的启用或禁用,可以在全局设置或应用级别配置。
14
+ * 使用 useMemo 确保返回的对象引用稳定,避免不必要的组件重渲染。
15
+ *
16
+ * @example
17
+ *
18
+ * ```tsx
19
+ * function MyReactComponent() {
20
+ * const flags = useFeatureFlags();
21
+ *
22
+ * if (flags["my-new-feature"]) {
23
+ * return <NewFeature />;
24
+ * }
25
+ *
26
+ * return <OldFeature />;
27
+ * }
28
+ * ```
29
+ *
30
+ * @example
31
+ *
32
+ * ```tsx
33
+ * // 检查特定功能是否启用
34
+ * function FeatureToggle() {
35
+ * const flags = useFeatureFlags();
36
+ * const isEnabled = flags["experimental-mode"] ?? false;
37
+ *
38
+ * return (
39
+ * <div>
40
+ * Experimental Mode: {isEnabled ? "ON" : "OFF"}
41
+ * </div>
42
+ * );
43
+ * }
44
+ * ```
45
+ *
46
+ * @returns 特性开关配置对象,键为特性名称,值为布尔值。
47
+ */
48
+ function useFeatureFlags() {
49
+ return _react.default.useMemo(() => (0, _runtime.getRuntime)().getFeatureFlags(), []);
50
+ }
51
+ //# sourceMappingURL=useFeatureFlags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFeatureFlags.js","names":["_react","_interopRequireDefault","require","_runtime","useFeatureFlags","React","useMemo","getRuntime","getFeatureFlags"],"sources":["../../src/useFeatureFlags.ts"],"sourcesContent":["import React from \"react\";\nimport { getRuntime } from \"@next-core/runtime\";\nimport type { FeatureFlags } from \"@next-core/types\";\n\n/**\n * 获取特性开关配置的 React hooks。\n *\n * 特性开关用于控制功能的启用或禁用,可以在全局设置或应用级别配置。\n * 使用 useMemo 确保返回的对象引用稳定,避免不必要的组件重渲染。\n *\n * @example\n *\n * ```tsx\n * function MyReactComponent() {\n * const flags = useFeatureFlags();\n *\n * if (flags[\"my-new-feature\"]) {\n * return <NewFeature />;\n * }\n *\n * return <OldFeature />;\n * }\n * ```\n *\n * @example\n *\n * ```tsx\n * // 检查特定功能是否启用\n * function FeatureToggle() {\n * const flags = useFeatureFlags();\n * const isEnabled = flags[\"experimental-mode\"] ?? false;\n *\n * return (\n * <div>\n * Experimental Mode: {isEnabled ? \"ON\" : \"OFF\"}\n * </div>\n * );\n * }\n * ```\n *\n * @returns 特性开关配置对象,键为特性名称,值为布尔值。\n */\nexport function useFeatureFlags(): FeatureFlags {\n return React.useMemo(() => getRuntime().getFeatureFlags(), []);\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,eAAeA,CAAA,EAAiB;EAC9C,OAAOC,cAAK,CAACC,OAAO,CAAC,MAAM,IAAAC,mBAAU,EAAC,CAAC,CAACC,eAAe,CAAC,CAAC,EAAE,EAAE,CAAC;AAChE","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useHistory = useHistory;
7
+ var _runtime = require("@next-core/runtime");
8
+ /**
9
+ * 获取 history 对象的 React hooks。
10
+ *
11
+ * @example
12
+ *
13
+ * ```tsx
14
+ * function MyReactComponent() {
15
+ * const history = useHistory();
16
+ * const handleClick = () => {
17
+ * history.push('/new-page');
18
+ * };
19
+ * return <button onClick={handleClick}>Navigate</button>;
20
+ * }
21
+ * ```
22
+ *
23
+ * @returns history 对象,用于路由导航。
24
+ */
25
+ function useHistory() {
26
+ return (0, _runtime.getHistory)();
27
+ }
28
+ //# sourceMappingURL=useHistory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHistory.js","names":["_runtime","require","useHistory","getHistory"],"sources":["../../src/useHistory.ts"],"sourcesContent":["import { getHistory, type NextHistory } from \"@next-core/runtime\";\n\n/**\n * 获取 history 对象的 React hooks。\n *\n * @example\n *\n * ```tsx\n * function MyReactComponent() {\n * const history = useHistory();\n * const handleClick = () => {\n * history.push('/new-page');\n * };\n * return <button onClick={handleClick}>Navigate</button>;\n * }\n * ```\n *\n * @returns history 对象,用于路由导航。\n */\nexport function useHistory(): NextHistory {\n return getHistory();\n}\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,UAAUA,CAAA,EAAgB;EACxC,OAAO,IAAAC,mBAAU,EAAC,CAAC;AACrB","ignoreList":[]}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useLocation = useLocation;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _runtime = require("@next-core/runtime");
10
+ /**
11
+ * 获取当前路由 location 对象的 React hooks。
12
+ *
13
+ * @example
14
+ *
15
+ * ```tsx
16
+ * function MyReactComponent() {
17
+ * const location = useLocation();
18
+ * return <div>Current path: {location.pathname}</div>;
19
+ * }
20
+ * ```
21
+ *
22
+ * @returns 当前路由的 location 对象。
23
+ */
24
+ function useLocation() {
25
+ const [location, setLocation] = _react.default.useState(() => (0, _runtime.getHistory)().location);
26
+ _react.default.useEffect(() => {
27
+ const unlisten = (0, _runtime.getHistory)().listen(newLocation => {
28
+ setLocation(newLocation);
29
+ });
30
+ return unlisten;
31
+ }, []);
32
+ return location;
33
+ }
34
+ //# sourceMappingURL=useLocation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLocation.js","names":["_react","_interopRequireDefault","require","_runtime","useLocation","location","setLocation","React","useState","getHistory","useEffect","unlisten","listen","newLocation"],"sources":["../../src/useLocation.ts"],"sourcesContent":["import React from \"react\";\nimport { getHistory, type NextLocation } from \"@next-core/runtime\";\n\n/**\n * 获取当前路由 location 对象的 React hooks。\n *\n * @example\n *\n * ```tsx\n * function MyReactComponent() {\n * const location = useLocation();\n * return <div>Current path: {location.pathname}</div>;\n * }\n * ```\n *\n * @returns 当前路由的 location 对象。\n */\nexport function useLocation(): NextLocation {\n const [location, setLocation] = React.useState<NextLocation>(\n () => getHistory().location\n );\n\n React.useEffect(() => {\n const unlisten = getHistory().listen((newLocation) => {\n setLocation(newLocation);\n });\n return unlisten;\n }, []);\n\n return location;\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,WAAWA,CAAA,EAAiB;EAC1C,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAGC,cAAK,CAACC,QAAQ,CAC5C,MAAM,IAAAC,mBAAU,EAAC,CAAC,CAACJ,QACrB,CAAC;EAEDE,cAAK,CAACG,SAAS,CAAC,MAAM;IACpB,MAAMC,QAAQ,GAAG,IAAAF,mBAAU,EAAC,CAAC,CAACG,MAAM,CAAEC,WAAW,IAAK;MACpDP,WAAW,CAACO,WAAW,CAAC;IAC1B,CAAC,CAAC;IACF,OAAOF,QAAQ;EACjB,CAAC,EAAE,EAAE,CAAC;EAEN,OAAON,QAAQ;AACjB","ignoreList":[]}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useParams = useParams;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _runtime = require("@next-core/runtime");
10
+ /**
11
+ * 获取 URL query 参数的 React hooks,返回普通对象。
12
+ *
13
+ * 与 `useSearchParams` 不同,此 hook 返回一个普通的键值对象,
14
+ * 而不是 URLSearchParams 实例,使用更方便。
15
+ *
16
+ * **注意**:
17
+ * - 重复的参数只会保留最后一个值
18
+ * - 所有值都是字符串类型
19
+ * - 参数值会自动进行 URL 解码
20
+ *
21
+ * @example
22
+ *
23
+ * ```tsx
24
+ * // URL: /page?id=123&name=test
25
+ * function MyReactComponent() {
26
+ * const params = useParams();
27
+ * return <div>ID: {params.id}, Name: {params.name}</div>;
28
+ * }
29
+ * ```
30
+ *
31
+ * @returns URL query 参数对象。
32
+ */
33
+ function useParams() {
34
+ const [params, setParams] = _react.default.useState(() => extractParams((0, _runtime.getHistory)().location.search));
35
+ _react.default.useEffect(() => {
36
+ const unlisten = (0, _runtime.getHistory)().listen(location => {
37
+ setParams(extractParams(location.search));
38
+ });
39
+ return unlisten;
40
+ }, []);
41
+ return params;
42
+ }
43
+
44
+ /**
45
+ * 从 query string 中提取参数对象。
46
+ *
47
+ * @internal
48
+ */
49
+ function extractParams(search) {
50
+ const params = {};
51
+ const urlSearchParams = new URLSearchParams(search);
52
+ urlSearchParams.forEach((value, key) => {
53
+ params[key] = value;
54
+ });
55
+ return params;
56
+ }
57
+ //# sourceMappingURL=useParams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useParams.js","names":["_react","_interopRequireDefault","require","_runtime","useParams","params","setParams","React","useState","extractParams","getHistory","location","search","useEffect","unlisten","listen","urlSearchParams","URLSearchParams","forEach","value","key"],"sources":["../../src/useParams.ts"],"sourcesContent":["import React from \"react\";\nimport { getHistory } from \"@next-core/runtime\";\n\n/**\n * 获取 URL query 参数的 React hooks,返回普通对象。\n *\n * 与 `useSearchParams` 不同,此 hook 返回一个普通的键值对象,\n * 而不是 URLSearchParams 实例,使用更方便。\n *\n * **注意**:\n * - 重复的参数只会保留最后一个值\n * - 所有值都是字符串类型\n * - 参数值会自动进行 URL 解码\n *\n * @example\n *\n * ```tsx\n * // URL: /page?id=123&name=test\n * function MyReactComponent() {\n * const params = useParams();\n * return <div>ID: {params.id}, Name: {params.name}</div>;\n * }\n * ```\n *\n * @returns URL query 参数对象。\n */\nexport function useParams(): Record<string, string> {\n const [params, setParams] = React.useState<Record<string, string>>(() =>\n extractParams(getHistory().location.search)\n );\n\n React.useEffect(() => {\n const unlisten = getHistory().listen((location) => {\n setParams(extractParams(location.search));\n });\n return unlisten;\n }, []);\n\n return params;\n}\n\n/**\n * 从 query string 中提取参数对象。\n *\n * @internal\n */\nfunction extractParams(search: string): Record<string, string> {\n const params: Record<string, string> = {};\n const urlSearchParams = new URLSearchParams(search);\n\n urlSearchParams.forEach((value, key) => {\n params[key] = value;\n });\n\n return params;\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,SAASA,CAAA,EAA2B;EAClD,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGC,cAAK,CAACC,QAAQ,CAAyB,MACjEC,aAAa,CAAC,IAAAC,mBAAU,EAAC,CAAC,CAACC,QAAQ,CAACC,MAAM,CAC5C,CAAC;EAEDL,cAAK,CAACM,SAAS,CAAC,MAAM;IACpB,MAAMC,QAAQ,GAAG,IAAAJ,mBAAU,EAAC,CAAC,CAACK,MAAM,CAAEJ,QAAQ,IAAK;MACjDL,SAAS,CAACG,aAAa,CAACE,QAAQ,CAACC,MAAM,CAAC,CAAC;IAC3C,CAAC,CAAC;IACF,OAAOE,QAAQ;EACjB,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOT,MAAM;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA,SAASI,aAAaA,CAACG,MAAc,EAA0B;EAC7D,MAAMP,MAA8B,GAAG,CAAC,CAAC;EACzC,MAAMW,eAAe,GAAG,IAAIC,eAAe,CAACL,MAAM,CAAC;EAEnDI,eAAe,CAACE,OAAO,CAAC,CAACC,KAAK,EAAEC,GAAG,KAAK;IACtCf,MAAM,CAACe,GAAG,CAAC,GAAGD,KAAK;EACrB,CAAC,CAAC;EAEF,OAAOd,MAAM;AACf","ignoreList":[]}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.usePathParams = usePathParams;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _runtime = require("@next-core/runtime");
10
+ /**
11
+ * 获取当前路由路径参数的 React hooks。
12
+ *
13
+ * **注意**: 此 hook 依赖于运行时上下文中的路由匹配信息。
14
+ * 如果在非路由上下文中使用,将返回空对象。
15
+ *
16
+ * 此 hook 监听 `page.load` 事件以确保在路由匹配完成后更新路径参数。
17
+ * 直接监听 history 变化无法获取正确的参数,因为路由匹配是异步的。
18
+ *
19
+ * @example
20
+ *
21
+ * ```tsx
22
+ * function MyReactComponent() {
23
+ * const pathParams = usePathParams();
24
+ * return <div>User ID: {pathParams.userId}</div>;
25
+ * }
26
+ * ```
27
+ *
28
+ * @returns 当前路由的路径参数对象。
29
+ */
30
+ function usePathParams() {
31
+ const [pathParams, setPathParams] = _react.default.useState(() => extractPathParams());
32
+ _react.default.useEffect(() => {
33
+ const listener = () => {
34
+ setPathParams(extractPathParams());
35
+ };
36
+
37
+ // 监听 page.load 事件,此时路由匹配已完成,match 信息已更新
38
+ window.addEventListener("page.load", listener);
39
+ return () => window.removeEventListener("page.load", listener);
40
+ }, []);
41
+ return pathParams;
42
+ }
43
+
44
+ /**
45
+ * 从运行时上下文中提取路径参数。
46
+ *
47
+ * @internal
48
+ */
49
+ function extractPathParams() {
50
+ try {
51
+ var _runtimeValue$match;
52
+ // 使用 __secret_internals 获取当前运行时值
53
+ const runtimeValue = _runtime.__secret_internals.getLegalRuntimeValue();
54
+ return (runtimeValue === null || runtimeValue === void 0 || (_runtimeValue$match = runtimeValue.match) === null || _runtimeValue$match === void 0 ? void 0 : _runtimeValue$match.params) ?? {};
55
+ } catch (_error) {
56
+ // 如果运行时上下文不可用,返回空对象
57
+ return {};
58
+ }
59
+ }
60
+ //# sourceMappingURL=usePathParams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePathParams.js","names":["_react","_interopRequireDefault","require","_runtime","usePathParams","pathParams","setPathParams","React","useState","extractPathParams","useEffect","listener","window","addEventListener","removeEventListener","_runtimeValue$match","runtimeValue","__secret_internals","getLegalRuntimeValue","match","params","_error"],"sources":["../../src/usePathParams.ts"],"sourcesContent":["import React from \"react\";\nimport { __secret_internals } from \"@next-core/runtime\";\n\n/**\n * 获取当前路由路径参数的 React hooks。\n *\n * **注意**: 此 hook 依赖于运行时上下文中的路由匹配信息。\n * 如果在非路由上下文中使用,将返回空对象。\n *\n * 此 hook 监听 `page.load` 事件以确保在路由匹配完成后更新路径参数。\n * 直接监听 history 变化无法获取正确的参数,因为路由匹配是异步的。\n *\n * @example\n *\n * ```tsx\n * function MyReactComponent() {\n * const pathParams = usePathParams();\n * return <div>User ID: {pathParams.userId}</div>;\n * }\n * ```\n *\n * @returns 当前路由的路径参数对象。\n */\nexport function usePathParams(): Record<string, string> {\n const [pathParams, setPathParams] = React.useState<Record<string, string>>(\n () => extractPathParams()\n );\n\n React.useEffect(() => {\n const listener = (() => {\n setPathParams(extractPathParams());\n }) as EventListener;\n\n // 监听 page.load 事件,此时路由匹配已完成,match 信息已更新\n window.addEventListener(\"page.load\", listener);\n return () => window.removeEventListener(\"page.load\", listener);\n }, []);\n\n return pathParams;\n}\n\n/**\n * 从运行时上下文中提取路径参数。\n *\n * @internal\n */\nfunction extractPathParams(): Record<string, string> {\n try {\n // 使用 __secret_internals 获取当前运行时值\n const runtimeValue = __secret_internals.getLegalRuntimeValue();\n return runtimeValue?.match?.params ?? {};\n } catch (_error) {\n // 如果运行时上下文不可用,返回空对象\n return {};\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,aAAaA,CAAA,EAA2B;EACtD,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAGC,cAAK,CAACC,QAAQ,CAChD,MAAMC,iBAAiB,CAAC,CAC1B,CAAC;EAEDF,cAAK,CAACG,SAAS,CAAC,MAAM;IACpB,MAAMC,QAAQ,GAAIA,CAAA,KAAM;MACtBL,aAAa,CAACG,iBAAiB,CAAC,CAAC,CAAC;IACpC,CAAmB;;IAEnB;IACAG,MAAM,CAACC,gBAAgB,CAAC,WAAW,EAAEF,QAAQ,CAAC;IAC9C,OAAO,MAAMC,MAAM,CAACE,mBAAmB,CAAC,WAAW,EAAEH,QAAQ,CAAC;EAChE,CAAC,EAAE,EAAE,CAAC;EAEN,OAAON,UAAU;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA,SAASI,iBAAiBA,CAAA,EAA2B;EACnD,IAAI;IAAA,IAAAM,mBAAA;IACF;IACA,MAAMC,YAAY,GAAGC,2BAAkB,CAACC,oBAAoB,CAAC,CAAC;IAC9D,OAAO,CAAAF,YAAY,aAAZA,YAAY,gBAAAD,mBAAA,GAAZC,YAAY,CAAEG,KAAK,cAAAJ,mBAAA,uBAAnBA,mBAAA,CAAqBK,MAAM,KAAI,CAAC,CAAC;EAC1C,CAAC,CAAC,OAAOC,MAAM,EAAE;IACf;IACA,OAAO,CAAC,CAAC;EACX;AACF","ignoreList":[]}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useSearchParams = useSearchParams;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _runtime = require("@next-core/runtime");
10
+ /**
11
+ * 获取当前 URL 查询参数的 React hooks。
12
+ *
13
+ * @example
14
+ *
15
+ * ```tsx
16
+ * function MyReactComponent() {
17
+ * const searchParams = useSearchParams();
18
+ * return <div>Search query: {searchParams.get('q')}</div>;
19
+ * }
20
+ * ```
21
+ *
22
+ * @returns 当前 URL 的查询参数 URLSearchParams 对象。
23
+ */
24
+ function useSearchParams() {
25
+ const [searchParams, setSearchParams] = _react.default.useState(() => new URLSearchParams((0, _runtime.getHistory)().location.search));
26
+ _react.default.useEffect(() => {
27
+ const unlisten = (0, _runtime.getHistory)().listen(location => {
28
+ setSearchParams(new URLSearchParams(location.search));
29
+ });
30
+ return unlisten;
31
+ }, []);
32
+ return searchParams;
33
+ }
34
+ //# sourceMappingURL=useSearchParams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSearchParams.js","names":["_react","_interopRequireDefault","require","_runtime","useSearchParams","searchParams","setSearchParams","React","useState","URLSearchParams","getHistory","location","search","useEffect","unlisten","listen"],"sources":["../../src/useSearchParams.ts"],"sourcesContent":["import React from \"react\";\nimport { getHistory } from \"@next-core/runtime\";\n\n/**\n * 获取当前 URL 查询参数的 React hooks。\n *\n * @example\n *\n * ```tsx\n * function MyReactComponent() {\n * const searchParams = useSearchParams();\n * return <div>Search query: {searchParams.get('q')}</div>;\n * }\n * ```\n *\n * @returns 当前 URL 的查询参数 URLSearchParams 对象。\n */\nexport function useSearchParams(): URLSearchParams {\n const [searchParams, setSearchParams] = React.useState<URLSearchParams>(\n () => new URLSearchParams(getHistory().location.search)\n );\n\n React.useEffect(() => {\n const unlisten = getHistory().listen((location) => {\n setSearchParams(new URLSearchParams(location.search));\n });\n return unlisten;\n }, []);\n\n return searchParams;\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,eAAeA,CAAA,EAAoB;EACjD,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAGC,cAAK,CAACC,QAAQ,CACpD,MAAM,IAAIC,eAAe,CAAC,IAAAC,mBAAU,EAAC,CAAC,CAACC,QAAQ,CAACC,MAAM,CACxD,CAAC;EAEDL,cAAK,CAACM,SAAS,CAAC,MAAM;IACpB,MAAMC,QAAQ,GAAG,IAAAJ,mBAAU,EAAC,CAAC,CAACK,MAAM,CAAEJ,QAAQ,IAAK;MACjDL,eAAe,CAAC,IAAIG,eAAe,CAACE,QAAQ,CAACC,MAAM,CAAC,CAAC;IACvD,CAAC,CAAC;IACF,OAAOE,QAAQ;EACjB,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOT,YAAY;AACrB","ignoreList":[]}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useSystemInfo = useSystemInfo;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _runtime = require("@next-core/runtime");
10
+ var _easyopsRuntime = require("@next-core/easyops-runtime");
11
+ /**
12
+ * 系统信息接口,包含认证信息、页面信息和品牌设置。
13
+ */
14
+
15
+ /**
16
+ * 获取系统信息的 React hooks。
17
+ *
18
+ * 系统信息包括:
19
+ * - 用户认证信息(username, userInstanceId, org 等)
20
+ * - 页面信息(isInIframe, isInIframeOfNext 等)
21
+ * - 品牌设置(base_title 等)
22
+ *
23
+ * **注意**: 使用 useMemo 确保返回的对象引用稳定,
24
+ * 避免不必要的组件重渲染。系统信息在会话期间保持稳定。
25
+ *
26
+ * @example
27
+ *
28
+ * ```tsx
29
+ * function MyReactComponent() {
30
+ * const sys = useSystemInfo();
31
+ *
32
+ * return (
33
+ * <div>
34
+ * <p>User: {sys.username}</p>
35
+ * <p>Org: {sys.org}</p>
36
+ * <p>In iframe: {sys.isInIframe ? "Yes" : "No"}</p>
37
+ * <p>Brand: {sys.settings.brand.base_title}</p>
38
+ * </div>
39
+ * );
40
+ * }
41
+ * ```
42
+ *
43
+ * @example
44
+ *
45
+ * ```tsx
46
+ * // 检查是否在 iframe 中
47
+ * function IframeDetector() {
48
+ * const sys = useSystemInfo();
49
+ *
50
+ * if (sys.isInIframe) {
51
+ * return <div>Running in iframe mode</div>;
52
+ * }
53
+ *
54
+ * return <div>Running in standalone mode</div>;
55
+ * }
56
+ * ```
57
+ *
58
+ * @returns 系统信息对象。
59
+ */
60
+ function useSystemInfo() {
61
+ return _react.default.useMemo(() => {
62
+ const authInfo = _easyopsRuntime.auth.getAuth();
63
+ const pageInfo = (0, _runtime.getPageInfo)();
64
+ const brandSettings = (0, _runtime.getRuntime)().getBrandSettings();
65
+ return {
66
+ ...authInfo,
67
+ ...pageInfo,
68
+ settings: {
69
+ brand: brandSettings
70
+ }
71
+ };
72
+ }, []);
73
+ }
74
+ //# sourceMappingURL=useSystemInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSystemInfo.js","names":["_react","_interopRequireDefault","require","_runtime","_easyopsRuntime","useSystemInfo","React","useMemo","authInfo","auth","getAuth","pageInfo","getPageInfo","brandSettings","getRuntime","getBrandSettings","settings","brand"],"sources":["../../src/useSystemInfo.ts"],"sourcesContent":["import React from \"react\";\nimport { getRuntime, getPageInfo } from \"@next-core/runtime\";\nimport { auth } from \"@next-core/easyops-runtime\";\nimport type { PageInfo } from \"@next-core/runtime\";\n\n/**\n * 系统信息接口,包含认证信息、页面信息和品牌设置。\n */\nexport interface SystemInfo extends PageInfo {\n /** 用户认证信息 */\n username?: string;\n userInstanceId?: string;\n org?: number;\n [key: string]: unknown;\n\n /** 系统设置 */\n settings: {\n /** 品牌设置 */\n brand: Record<string, string>;\n };\n}\n\n/**\n * 获取系统信息的 React hooks。\n *\n * 系统信息包括:\n * - 用户认证信息(username, userInstanceId, org 等)\n * - 页面信息(isInIframe, isInIframeOfNext 等)\n * - 品牌设置(base_title 等)\n *\n * **注意**: 使用 useMemo 确保返回的对象引用稳定,\n * 避免不必要的组件重渲染。系统信息在会话期间保持稳定。\n *\n * @example\n *\n * ```tsx\n * function MyReactComponent() {\n * const sys = useSystemInfo();\n *\n * return (\n * <div>\n * <p>User: {sys.username}</p>\n * <p>Org: {sys.org}</p>\n * <p>In iframe: {sys.isInIframe ? \"Yes\" : \"No\"}</p>\n * <p>Brand: {sys.settings.brand.base_title}</p>\n * </div>\n * );\n * }\n * ```\n *\n * @example\n *\n * ```tsx\n * // 检查是否在 iframe 中\n * function IframeDetector() {\n * const sys = useSystemInfo();\n *\n * if (sys.isInIframe) {\n * return <div>Running in iframe mode</div>;\n * }\n *\n * return <div>Running in standalone mode</div>;\n * }\n * ```\n *\n * @returns 系统信息对象。\n */\nexport function useSystemInfo(): SystemInfo {\n return React.useMemo(() => {\n const authInfo = auth.getAuth();\n const pageInfo = getPageInfo();\n const brandSettings = getRuntime().getBrandSettings();\n\n return {\n ...authInfo,\n ...pageInfo,\n settings: {\n brand: brandSettings,\n },\n };\n }, []);\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AAGA;AACA;AACA;;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASG,aAAaA,CAAA,EAAe;EAC1C,OAAOC,cAAK,CAACC,OAAO,CAAC,MAAM;IACzB,MAAMC,QAAQ,GAAGC,oBAAI,CAACC,OAAO,CAAC,CAAC;IAC/B,MAAMC,QAAQ,GAAG,IAAAC,oBAAW,EAAC,CAAC;IAC9B,MAAMC,aAAa,GAAG,IAAAC,mBAAU,EAAC,CAAC,CAACC,gBAAgB,CAAC,CAAC;IAErD,OAAO;MACL,GAAGP,QAAQ;MACX,GAAGG,QAAQ;MACXK,QAAQ,EAAE;QACRC,KAAK,EAAEJ;MACT;IACF,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;AACR","ignoreList":[]}
package/dist/esm/index.js CHANGED
@@ -7,4 +7,12 @@ export * from "./useProvider/useProvider.js";
7
7
  export * from "./asyncWrapBrick.js";
8
8
  export * from "./useNavConfig.js";
9
9
  export * from "./useLazyWrapBrick.js";
10
+ export * from "./usePathParams.js";
11
+ export * from "./useSearchParams.js";
12
+ export * from "./useParams.js";
13
+ export * from "./useHistory.js";
14
+ export * from "./useAuth.js";
15
+ export * from "./useLocation.js";
16
+ export * from "./useFeatureFlags.js";
17
+ export * from "./useSystemInfo.js";
10
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":["export * from \"./ReactUseBrick.js\";\nexport * from \"./useCurrentTheme.js\";\nexport * from \"./useCurrentApp.js\";\nexport * from \"./useRecentApps.js\";\nexport * from \"./useRouteRender.js\";\nexport * from \"./useProvider/useProvider.js\";\nexport * from \"./asyncWrapBrick.js\";\nexport * from \"./useNavConfig.js\";\nexport * from \"./useLazyWrapBrick.js\";\n"],"mappings":"AAAA,cAAc,oBAAoB;AAClC,cAAc,sBAAsB;AACpC,cAAc,oBAAoB;AAClC,cAAc,oBAAoB;AAClC,cAAc,qBAAqB;AACnC,cAAc,8BAA8B;AAC5C,cAAc,qBAAqB;AACnC,cAAc,mBAAmB;AACjC,cAAc,uBAAuB","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":["export * from \"./ReactUseBrick.js\";\nexport * from \"./useCurrentTheme.js\";\nexport * from \"./useCurrentApp.js\";\nexport * from \"./useRecentApps.js\";\nexport * from \"./useRouteRender.js\";\nexport * from \"./useProvider/useProvider.js\";\nexport * from \"./asyncWrapBrick.js\";\nexport * from \"./useNavConfig.js\";\nexport * from \"./useLazyWrapBrick.js\";\nexport * from \"./usePathParams.js\";\nexport * from \"./useSearchParams.js\";\nexport * from \"./useParams.js\";\nexport * from \"./useHistory.js\";\nexport * from \"./useAuth.js\";\nexport * from \"./useLocation.js\";\nexport * from \"./useFeatureFlags.js\";\nexport * from \"./useSystemInfo.js\";\n"],"mappings":"AAAA,cAAc,oBAAoB;AAClC,cAAc,sBAAsB;AACpC,cAAc,oBAAoB;AAClC,cAAc,oBAAoB;AAClC,cAAc,qBAAqB;AACnC,cAAc,8BAA8B;AAC5C,cAAc,qBAAqB;AACnC,cAAc,mBAAmB;AACjC,cAAc,uBAAuB;AACrC,cAAc,oBAAoB;AAClC,cAAc,sBAAsB;AACpC,cAAc,gBAAgB;AAC9B,cAAc,iBAAiB;AAC/B,cAAc,cAAc;AAC5B,cAAc,kBAAkB;AAChC,cAAc,sBAAsB;AACpC,cAAc,oBAAoB","ignoreList":[]}
@@ -0,0 +1,23 @@
1
+ import React from "react";
2
+ import { auth } from "@next-core/easyops-runtime";
3
+ /**
4
+ * 获取用户认证信息的 React hooks。
5
+ *
6
+ * **注意**: 使用 useMemo 确保返回的认证信息对象引用稳定,
7
+ * 避免不必要的组件重渲染。认证信息在会话期间保持不变。
8
+ *
9
+ * @example
10
+ *
11
+ * ```tsx
12
+ * function MyReactComponent() {
13
+ * const authInfo = useAuth();
14
+ * return <div>Username: {authInfo.username}</div>;
15
+ * }
16
+ * ```
17
+ *
18
+ * @returns 当前用户的认证信息对象。
19
+ */
20
+ export function useAuth() {
21
+ return React.useMemo(() => auth.getAuth(), []);
22
+ }
23
+ //# sourceMappingURL=useAuth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAuth.js","names":["React","auth","useAuth","useMemo","getAuth"],"sources":["../../src/useAuth.ts"],"sourcesContent":["import React from \"react\";\nimport { auth } from \"@next-core/easyops-runtime\";\n\nexport type AuthInfo = ReturnType<typeof auth.getAuth>;\n\n/**\n * 获取用户认证信息的 React hooks。\n *\n * **注意**: 使用 useMemo 确保返回的认证信息对象引用稳定,\n * 避免不必要的组件重渲染。认证信息在会话期间保持不变。\n *\n * @example\n *\n * ```tsx\n * function MyReactComponent() {\n * const authInfo = useAuth();\n * return <div>Username: {authInfo.username}</div>;\n * }\n * ```\n *\n * @returns 当前用户的认证信息对象。\n */\nexport function useAuth(): AuthInfo {\n return React.useMemo(() => auth.getAuth(), []);\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,4BAA4B;AAIjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,OAAOA,CAAA,EAAa;EAClC,OAAOF,KAAK,CAACG,OAAO,CAAC,MAAMF,IAAI,CAACG,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC;AAChD","ignoreList":[]}
@@ -0,0 +1,44 @@
1
+ import React from "react";
2
+ import { getRuntime } from "@next-core/runtime";
3
+ /**
4
+ * 获取特性开关配置的 React hooks。
5
+ *
6
+ * 特性开关用于控制功能的启用或禁用,可以在全局设置或应用级别配置。
7
+ * 使用 useMemo 确保返回的对象引用稳定,避免不必要的组件重渲染。
8
+ *
9
+ * @example
10
+ *
11
+ * ```tsx
12
+ * function MyReactComponent() {
13
+ * const flags = useFeatureFlags();
14
+ *
15
+ * if (flags["my-new-feature"]) {
16
+ * return <NewFeature />;
17
+ * }
18
+ *
19
+ * return <OldFeature />;
20
+ * }
21
+ * ```
22
+ *
23
+ * @example
24
+ *
25
+ * ```tsx
26
+ * // 检查特定功能是否启用
27
+ * function FeatureToggle() {
28
+ * const flags = useFeatureFlags();
29
+ * const isEnabled = flags["experimental-mode"] ?? false;
30
+ *
31
+ * return (
32
+ * <div>
33
+ * Experimental Mode: {isEnabled ? "ON" : "OFF"}
34
+ * </div>
35
+ * );
36
+ * }
37
+ * ```
38
+ *
39
+ * @returns 特性开关配置对象,键为特性名称,值为布尔值。
40
+ */
41
+ export function useFeatureFlags() {
42
+ return React.useMemo(() => getRuntime().getFeatureFlags(), []);
43
+ }
44
+ //# sourceMappingURL=useFeatureFlags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFeatureFlags.js","names":["React","getRuntime","useFeatureFlags","useMemo","getFeatureFlags"],"sources":["../../src/useFeatureFlags.ts"],"sourcesContent":["import React from \"react\";\nimport { getRuntime } from \"@next-core/runtime\";\nimport type { FeatureFlags } from \"@next-core/types\";\n\n/**\n * 获取特性开关配置的 React hooks。\n *\n * 特性开关用于控制功能的启用或禁用,可以在全局设置或应用级别配置。\n * 使用 useMemo 确保返回的对象引用稳定,避免不必要的组件重渲染。\n *\n * @example\n *\n * ```tsx\n * function MyReactComponent() {\n * const flags = useFeatureFlags();\n *\n * if (flags[\"my-new-feature\"]) {\n * return <NewFeature />;\n * }\n *\n * return <OldFeature />;\n * }\n * ```\n *\n * @example\n *\n * ```tsx\n * // 检查特定功能是否启用\n * function FeatureToggle() {\n * const flags = useFeatureFlags();\n * const isEnabled = flags[\"experimental-mode\"] ?? false;\n *\n * return (\n * <div>\n * Experimental Mode: {isEnabled ? \"ON\" : \"OFF\"}\n * </div>\n * );\n * }\n * ```\n *\n * @returns 特性开关配置对象,键为特性名称,值为布尔值。\n */\nexport function useFeatureFlags(): FeatureFlags {\n return React.useMemo(() => getRuntime().getFeatureFlags(), []);\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAQ,oBAAoB;AAG/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAAA,EAAiB;EAC9C,OAAOF,KAAK,CAACG,OAAO,CAAC,MAAMF,UAAU,CAAC,CAAC,CAACG,eAAe,CAAC,CAAC,EAAE,EAAE,CAAC;AAChE","ignoreList":[]}
@@ -0,0 +1,23 @@
1
+ import { getHistory } from "@next-core/runtime";
2
+
3
+ /**
4
+ * 获取 history 对象的 React hooks。
5
+ *
6
+ * @example
7
+ *
8
+ * ```tsx
9
+ * function MyReactComponent() {
10
+ * const history = useHistory();
11
+ * const handleClick = () => {
12
+ * history.push('/new-page');
13
+ * };
14
+ * return <button onClick={handleClick}>Navigate</button>;
15
+ * }
16
+ * ```
17
+ *
18
+ * @returns history 对象,用于路由导航。
19
+ */
20
+ export function useHistory() {
21
+ return getHistory();
22
+ }
23
+ //# sourceMappingURL=useHistory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHistory.js","names":["getHistory","useHistory"],"sources":["../../src/useHistory.ts"],"sourcesContent":["import { getHistory, type NextHistory } from \"@next-core/runtime\";\n\n/**\n * 获取 history 对象的 React hooks。\n *\n * @example\n *\n * ```tsx\n * function MyReactComponent() {\n * const history = useHistory();\n * const handleClick = () => {\n * history.push('/new-page');\n * };\n * return <button onClick={handleClick}>Navigate</button>;\n * }\n * ```\n *\n * @returns history 对象,用于路由导航。\n */\nexport function useHistory(): NextHistory {\n return getHistory();\n}\n"],"mappings":"AAAA,SAASA,UAAU,QAA0B,oBAAoB;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,UAAUA,CAAA,EAAgB;EACxC,OAAOD,UAAU,CAAC,CAAC;AACrB","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ import React from "react";
2
+ import { getHistory } from "@next-core/runtime";
3
+
4
+ /**
5
+ * 获取当前路由 location 对象的 React hooks。
6
+ *
7
+ * @example
8
+ *
9
+ * ```tsx
10
+ * function MyReactComponent() {
11
+ * const location = useLocation();
12
+ * return <div>Current path: {location.pathname}</div>;
13
+ * }
14
+ * ```
15
+ *
16
+ * @returns 当前路由的 location 对象。
17
+ */
18
+ export function useLocation() {
19
+ const [location, setLocation] = React.useState(() => getHistory().location);
20
+ React.useEffect(() => {
21
+ const unlisten = getHistory().listen(newLocation => {
22
+ setLocation(newLocation);
23
+ });
24
+ return unlisten;
25
+ }, []);
26
+ return location;
27
+ }
28
+ //# sourceMappingURL=useLocation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLocation.js","names":["React","getHistory","useLocation","location","setLocation","useState","useEffect","unlisten","listen","newLocation"],"sources":["../../src/useLocation.ts"],"sourcesContent":["import React from \"react\";\nimport { getHistory, type NextLocation } from \"@next-core/runtime\";\n\n/**\n * 获取当前路由 location 对象的 React hooks。\n *\n * @example\n *\n * ```tsx\n * function MyReactComponent() {\n * const location = useLocation();\n * return <div>Current path: {location.pathname}</div>;\n * }\n * ```\n *\n * @returns 当前路由的 location 对象。\n */\nexport function useLocation(): NextLocation {\n const [location, setLocation] = React.useState<NextLocation>(\n () => getHistory().location\n );\n\n React.useEffect(() => {\n const unlisten = getHistory().listen((newLocation) => {\n setLocation(newLocation);\n });\n return unlisten;\n }, []);\n\n return location;\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAA2B,oBAAoB;;AAElE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,WAAWA,CAAA,EAAiB;EAC1C,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAGJ,KAAK,CAACK,QAAQ,CAC5C,MAAMJ,UAAU,CAAC,CAAC,CAACE,QACrB,CAAC;EAEDH,KAAK,CAACM,SAAS,CAAC,MAAM;IACpB,MAAMC,QAAQ,GAAGN,UAAU,CAAC,CAAC,CAACO,MAAM,CAAEC,WAAW,IAAK;MACpDL,WAAW,CAACK,WAAW,CAAC;IAC1B,CAAC,CAAC;IACF,OAAOF,QAAQ;EACjB,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOJ,QAAQ;AACjB","ignoreList":[]}
@@ -0,0 +1,51 @@
1
+ import React from "react";
2
+ import { getHistory } from "@next-core/runtime";
3
+
4
+ /**
5
+ * 获取 URL query 参数的 React hooks,返回普通对象。
6
+ *
7
+ * 与 `useSearchParams` 不同,此 hook 返回一个普通的键值对象,
8
+ * 而不是 URLSearchParams 实例,使用更方便。
9
+ *
10
+ * **注意**:
11
+ * - 重复的参数只会保留最后一个值
12
+ * - 所有值都是字符串类型
13
+ * - 参数值会自动进行 URL 解码
14
+ *
15
+ * @example
16
+ *
17
+ * ```tsx
18
+ * // URL: /page?id=123&name=test
19
+ * function MyReactComponent() {
20
+ * const params = useParams();
21
+ * return <div>ID: {params.id}, Name: {params.name}</div>;
22
+ * }
23
+ * ```
24
+ *
25
+ * @returns URL query 参数对象。
26
+ */
27
+ export function useParams() {
28
+ const [params, setParams] = React.useState(() => extractParams(getHistory().location.search));
29
+ React.useEffect(() => {
30
+ const unlisten = getHistory().listen(location => {
31
+ setParams(extractParams(location.search));
32
+ });
33
+ return unlisten;
34
+ }, []);
35
+ return params;
36
+ }
37
+
38
+ /**
39
+ * 从 query string 中提取参数对象。
40
+ *
41
+ * @internal
42
+ */
43
+ function extractParams(search) {
44
+ const params = {};
45
+ const urlSearchParams = new URLSearchParams(search);
46
+ urlSearchParams.forEach((value, key) => {
47
+ params[key] = value;
48
+ });
49
+ return params;
50
+ }
51
+ //# sourceMappingURL=useParams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useParams.js","names":["React","getHistory","useParams","params","setParams","useState","extractParams","location","search","useEffect","unlisten","listen","urlSearchParams","URLSearchParams","forEach","value","key"],"sources":["../../src/useParams.ts"],"sourcesContent":["import React from \"react\";\nimport { getHistory } from \"@next-core/runtime\";\n\n/**\n * 获取 URL query 参数的 React hooks,返回普通对象。\n *\n * 与 `useSearchParams` 不同,此 hook 返回一个普通的键值对象,\n * 而不是 URLSearchParams 实例,使用更方便。\n *\n * **注意**:\n * - 重复的参数只会保留最后一个值\n * - 所有值都是字符串类型\n * - 参数值会自动进行 URL 解码\n *\n * @example\n *\n * ```tsx\n * // URL: /page?id=123&name=test\n * function MyReactComponent() {\n * const params = useParams();\n * return <div>ID: {params.id}, Name: {params.name}</div>;\n * }\n * ```\n *\n * @returns URL query 参数对象。\n */\nexport function useParams(): Record<string, string> {\n const [params, setParams] = React.useState<Record<string, string>>(() =>\n extractParams(getHistory().location.search)\n );\n\n React.useEffect(() => {\n const unlisten = getHistory().listen((location) => {\n setParams(extractParams(location.search));\n });\n return unlisten;\n }, []);\n\n return params;\n}\n\n/**\n * 从 query string 中提取参数对象。\n *\n * @internal\n */\nfunction extractParams(search: string): Record<string, string> {\n const params: Record<string, string> = {};\n const urlSearchParams = new URLSearchParams(search);\n\n urlSearchParams.forEach((value, key) => {\n params[key] = value;\n });\n\n return params;\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAQ,oBAAoB;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,SAASA,CAAA,EAA2B;EAClD,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGJ,KAAK,CAACK,QAAQ,CAAyB,MACjEC,aAAa,CAACL,UAAU,CAAC,CAAC,CAACM,QAAQ,CAACC,MAAM,CAC5C,CAAC;EAEDR,KAAK,CAACS,SAAS,CAAC,MAAM;IACpB,MAAMC,QAAQ,GAAGT,UAAU,CAAC,CAAC,CAACU,MAAM,CAAEJ,QAAQ,IAAK;MACjDH,SAAS,CAACE,aAAa,CAACC,QAAQ,CAACC,MAAM,CAAC,CAAC;IAC3C,CAAC,CAAC;IACF,OAAOE,QAAQ;EACjB,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOP,MAAM;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA,SAASG,aAAaA,CAACE,MAAc,EAA0B;EAC7D,MAAML,MAA8B,GAAG,CAAC,CAAC;EACzC,MAAMS,eAAe,GAAG,IAAIC,eAAe,CAACL,MAAM,CAAC;EAEnDI,eAAe,CAACE,OAAO,CAAC,CAACC,KAAK,EAAEC,GAAG,KAAK;IACtCb,MAAM,CAACa,GAAG,CAAC,GAAGD,KAAK;EACrB,CAAC,CAAC;EAEF,OAAOZ,MAAM;AACf","ignoreList":[]}
@@ -0,0 +1,54 @@
1
+ import React from "react";
2
+ import { __secret_internals } from "@next-core/runtime";
3
+
4
+ /**
5
+ * 获取当前路由路径参数的 React hooks。
6
+ *
7
+ * **注意**: 此 hook 依赖于运行时上下文中的路由匹配信息。
8
+ * 如果在非路由上下文中使用,将返回空对象。
9
+ *
10
+ * 此 hook 监听 `page.load` 事件以确保在路由匹配完成后更新路径参数。
11
+ * 直接监听 history 变化无法获取正确的参数,因为路由匹配是异步的。
12
+ *
13
+ * @example
14
+ *
15
+ * ```tsx
16
+ * function MyReactComponent() {
17
+ * const pathParams = usePathParams();
18
+ * return <div>User ID: {pathParams.userId}</div>;
19
+ * }
20
+ * ```
21
+ *
22
+ * @returns 当前路由的路径参数对象。
23
+ */
24
+ export function usePathParams() {
25
+ const [pathParams, setPathParams] = React.useState(() => extractPathParams());
26
+ React.useEffect(() => {
27
+ const listener = () => {
28
+ setPathParams(extractPathParams());
29
+ };
30
+
31
+ // 监听 page.load 事件,此时路由匹配已完成,match 信息已更新
32
+ window.addEventListener("page.load", listener);
33
+ return () => window.removeEventListener("page.load", listener);
34
+ }, []);
35
+ return pathParams;
36
+ }
37
+
38
+ /**
39
+ * 从运行时上下文中提取路径参数。
40
+ *
41
+ * @internal
42
+ */
43
+ function extractPathParams() {
44
+ try {
45
+ var _runtimeValue$match$p, _runtimeValue$match;
46
+ // 使用 __secret_internals 获取当前运行时值
47
+ const runtimeValue = __secret_internals.getLegalRuntimeValue();
48
+ return (_runtimeValue$match$p = runtimeValue === null || runtimeValue === void 0 || (_runtimeValue$match = runtimeValue.match) === null || _runtimeValue$match === void 0 ? void 0 : _runtimeValue$match.params) !== null && _runtimeValue$match$p !== void 0 ? _runtimeValue$match$p : {};
49
+ } catch (_error) {
50
+ // 如果运行时上下文不可用,返回空对象
51
+ return {};
52
+ }
53
+ }
54
+ //# sourceMappingURL=usePathParams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePathParams.js","names":["React","__secret_internals","usePathParams","pathParams","setPathParams","useState","extractPathParams","useEffect","listener","window","addEventListener","removeEventListener","_runtimeValue$match$p","_runtimeValue$match","runtimeValue","getLegalRuntimeValue","match","params","_error"],"sources":["../../src/usePathParams.ts"],"sourcesContent":["import React from \"react\";\nimport { __secret_internals } from \"@next-core/runtime\";\n\n/**\n * 获取当前路由路径参数的 React hooks。\n *\n * **注意**: 此 hook 依赖于运行时上下文中的路由匹配信息。\n * 如果在非路由上下文中使用,将返回空对象。\n *\n * 此 hook 监听 `page.load` 事件以确保在路由匹配完成后更新路径参数。\n * 直接监听 history 变化无法获取正确的参数,因为路由匹配是异步的。\n *\n * @example\n *\n * ```tsx\n * function MyReactComponent() {\n * const pathParams = usePathParams();\n * return <div>User ID: {pathParams.userId}</div>;\n * }\n * ```\n *\n * @returns 当前路由的路径参数对象。\n */\nexport function usePathParams(): Record<string, string> {\n const [pathParams, setPathParams] = React.useState<Record<string, string>>(\n () => extractPathParams()\n );\n\n React.useEffect(() => {\n const listener = (() => {\n setPathParams(extractPathParams());\n }) as EventListener;\n\n // 监听 page.load 事件,此时路由匹配已完成,match 信息已更新\n window.addEventListener(\"page.load\", listener);\n return () => window.removeEventListener(\"page.load\", listener);\n }, []);\n\n return pathParams;\n}\n\n/**\n * 从运行时上下文中提取路径参数。\n *\n * @internal\n */\nfunction extractPathParams(): Record<string, string> {\n try {\n // 使用 __secret_internals 获取当前运行时值\n const runtimeValue = __secret_internals.getLegalRuntimeValue();\n return runtimeValue?.match?.params ?? {};\n } catch (_error) {\n // 如果运行时上下文不可用,返回空对象\n return {};\n }\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,kBAAkB,QAAQ,oBAAoB;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAAA,EAA2B;EACtD,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAGJ,KAAK,CAACK,QAAQ,CAChD,MAAMC,iBAAiB,CAAC,CAC1B,CAAC;EAEDN,KAAK,CAACO,SAAS,CAAC,MAAM;IACpB,MAAMC,QAAQ,GAAIA,CAAA,KAAM;MACtBJ,aAAa,CAACE,iBAAiB,CAAC,CAAC,CAAC;IACpC,CAAmB;;IAEnB;IACAG,MAAM,CAACC,gBAAgB,CAAC,WAAW,EAAEF,QAAQ,CAAC;IAC9C,OAAO,MAAMC,MAAM,CAACE,mBAAmB,CAAC,WAAW,EAAEH,QAAQ,CAAC;EAChE,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOL,UAAU;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA,SAASG,iBAAiBA,CAAA,EAA2B;EACnD,IAAI;IAAA,IAAAM,qBAAA,EAAAC,mBAAA;IACF;IACA,MAAMC,YAAY,GAAGb,kBAAkB,CAACc,oBAAoB,CAAC,CAAC;IAC9D,QAAAH,qBAAA,GAAOE,YAAY,aAAZA,YAAY,gBAAAD,mBAAA,GAAZC,YAAY,CAAEE,KAAK,cAAAH,mBAAA,uBAAnBA,mBAAA,CAAqBI,MAAM,cAAAL,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAAC;EAC1C,CAAC,CAAC,OAAOM,MAAM,EAAE;IACf;IACA,OAAO,CAAC,CAAC;EACX;AACF","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ import React from "react";
2
+ import { getHistory } from "@next-core/runtime";
3
+
4
+ /**
5
+ * 获取当前 URL 查询参数的 React hooks。
6
+ *
7
+ * @example
8
+ *
9
+ * ```tsx
10
+ * function MyReactComponent() {
11
+ * const searchParams = useSearchParams();
12
+ * return <div>Search query: {searchParams.get('q')}</div>;
13
+ * }
14
+ * ```
15
+ *
16
+ * @returns 当前 URL 的查询参数 URLSearchParams 对象。
17
+ */
18
+ export function useSearchParams() {
19
+ const [searchParams, setSearchParams] = React.useState(() => new URLSearchParams(getHistory().location.search));
20
+ React.useEffect(() => {
21
+ const unlisten = getHistory().listen(location => {
22
+ setSearchParams(new URLSearchParams(location.search));
23
+ });
24
+ return unlisten;
25
+ }, []);
26
+ return searchParams;
27
+ }
28
+ //# sourceMappingURL=useSearchParams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSearchParams.js","names":["React","getHistory","useSearchParams","searchParams","setSearchParams","useState","URLSearchParams","location","search","useEffect","unlisten","listen"],"sources":["../../src/useSearchParams.ts"],"sourcesContent":["import React from \"react\";\nimport { getHistory } from \"@next-core/runtime\";\n\n/**\n * 获取当前 URL 查询参数的 React hooks。\n *\n * @example\n *\n * ```tsx\n * function MyReactComponent() {\n * const searchParams = useSearchParams();\n * return <div>Search query: {searchParams.get('q')}</div>;\n * }\n * ```\n *\n * @returns 当前 URL 的查询参数 URLSearchParams 对象。\n */\nexport function useSearchParams(): URLSearchParams {\n const [searchParams, setSearchParams] = React.useState<URLSearchParams>(\n () => new URLSearchParams(getHistory().location.search)\n );\n\n React.useEffect(() => {\n const unlisten = getHistory().listen((location) => {\n setSearchParams(new URLSearchParams(location.search));\n });\n return unlisten;\n }, []);\n\n return searchParams;\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAQ,oBAAoB;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAAA,EAAoB;EACjD,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAGJ,KAAK,CAACK,QAAQ,CACpD,MAAM,IAAIC,eAAe,CAACL,UAAU,CAAC,CAAC,CAACM,QAAQ,CAACC,MAAM,CACxD,CAAC;EAEDR,KAAK,CAACS,SAAS,CAAC,MAAM;IACpB,MAAMC,QAAQ,GAAGT,UAAU,CAAC,CAAC,CAACU,MAAM,CAAEJ,QAAQ,IAAK;MACjDH,eAAe,CAAC,IAAIE,eAAe,CAACC,QAAQ,CAACC,MAAM,CAAC,CAAC;IACvD,CAAC,CAAC;IACF,OAAOE,QAAQ;EACjB,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOP,YAAY;AACrB","ignoreList":[]}
@@ -0,0 +1,68 @@
1
+ import React from "react";
2
+ import { getRuntime, getPageInfo } from "@next-core/runtime";
3
+ import { auth } from "@next-core/easyops-runtime";
4
+
5
+ /**
6
+ * 系统信息接口,包含认证信息、页面信息和品牌设置。
7
+ */
8
+
9
+ /**
10
+ * 获取系统信息的 React hooks。
11
+ *
12
+ * 系统信息包括:
13
+ * - 用户认证信息(username, userInstanceId, org 等)
14
+ * - 页面信息(isInIframe, isInIframeOfNext 等)
15
+ * - 品牌设置(base_title 等)
16
+ *
17
+ * **注意**: 使用 useMemo 确保返回的对象引用稳定,
18
+ * 避免不必要的组件重渲染。系统信息在会话期间保持稳定。
19
+ *
20
+ * @example
21
+ *
22
+ * ```tsx
23
+ * function MyReactComponent() {
24
+ * const sys = useSystemInfo();
25
+ *
26
+ * return (
27
+ * <div>
28
+ * <p>User: {sys.username}</p>
29
+ * <p>Org: {sys.org}</p>
30
+ * <p>In iframe: {sys.isInIframe ? "Yes" : "No"}</p>
31
+ * <p>Brand: {sys.settings.brand.base_title}</p>
32
+ * </div>
33
+ * );
34
+ * }
35
+ * ```
36
+ *
37
+ * @example
38
+ *
39
+ * ```tsx
40
+ * // 检查是否在 iframe 中
41
+ * function IframeDetector() {
42
+ * const sys = useSystemInfo();
43
+ *
44
+ * if (sys.isInIframe) {
45
+ * return <div>Running in iframe mode</div>;
46
+ * }
47
+ *
48
+ * return <div>Running in standalone mode</div>;
49
+ * }
50
+ * ```
51
+ *
52
+ * @returns 系统信息对象。
53
+ */
54
+ export function useSystemInfo() {
55
+ return React.useMemo(() => {
56
+ const authInfo = auth.getAuth();
57
+ const pageInfo = getPageInfo();
58
+ const brandSettings = getRuntime().getBrandSettings();
59
+ return {
60
+ ...authInfo,
61
+ ...pageInfo,
62
+ settings: {
63
+ brand: brandSettings
64
+ }
65
+ };
66
+ }, []);
67
+ }
68
+ //# sourceMappingURL=useSystemInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSystemInfo.js","names":["React","getRuntime","getPageInfo","auth","useSystemInfo","useMemo","authInfo","getAuth","pageInfo","brandSettings","getBrandSettings","settings","brand"],"sources":["../../src/useSystemInfo.ts"],"sourcesContent":["import React from \"react\";\nimport { getRuntime, getPageInfo } from \"@next-core/runtime\";\nimport { auth } from \"@next-core/easyops-runtime\";\nimport type { PageInfo } from \"@next-core/runtime\";\n\n/**\n * 系统信息接口,包含认证信息、页面信息和品牌设置。\n */\nexport interface SystemInfo extends PageInfo {\n /** 用户认证信息 */\n username?: string;\n userInstanceId?: string;\n org?: number;\n [key: string]: unknown;\n\n /** 系统设置 */\n settings: {\n /** 品牌设置 */\n brand: Record<string, string>;\n };\n}\n\n/**\n * 获取系统信息的 React hooks。\n *\n * 系统信息包括:\n * - 用户认证信息(username, userInstanceId, org 等)\n * - 页面信息(isInIframe, isInIframeOfNext 等)\n * - 品牌设置(base_title 等)\n *\n * **注意**: 使用 useMemo 确保返回的对象引用稳定,\n * 避免不必要的组件重渲染。系统信息在会话期间保持稳定。\n *\n * @example\n *\n * ```tsx\n * function MyReactComponent() {\n * const sys = useSystemInfo();\n *\n * return (\n * <div>\n * <p>User: {sys.username}</p>\n * <p>Org: {sys.org}</p>\n * <p>In iframe: {sys.isInIframe ? \"Yes\" : \"No\"}</p>\n * <p>Brand: {sys.settings.brand.base_title}</p>\n * </div>\n * );\n * }\n * ```\n *\n * @example\n *\n * ```tsx\n * // 检查是否在 iframe 中\n * function IframeDetector() {\n * const sys = useSystemInfo();\n *\n * if (sys.isInIframe) {\n * return <div>Running in iframe mode</div>;\n * }\n *\n * return <div>Running in standalone mode</div>;\n * }\n * ```\n *\n * @returns 系统信息对象。\n */\nexport function useSystemInfo(): SystemInfo {\n return React.useMemo(() => {\n const authInfo = auth.getAuth();\n const pageInfo = getPageInfo();\n const brandSettings = getRuntime().getBrandSettings();\n\n return {\n ...authInfo,\n ...pageInfo,\n settings: {\n brand: brandSettings,\n },\n };\n }, []);\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,EAAEC,WAAW,QAAQ,oBAAoB;AAC5D,SAASC,IAAI,QAAQ,4BAA4B;;AAGjD;AACA;AACA;;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAAA,EAAe;EAC1C,OAAOJ,KAAK,CAACK,OAAO,CAAC,MAAM;IACzB,MAAMC,QAAQ,GAAGH,IAAI,CAACI,OAAO,CAAC,CAAC;IAC/B,MAAMC,QAAQ,GAAGN,WAAW,CAAC,CAAC;IAC9B,MAAMO,aAAa,GAAGR,UAAU,CAAC,CAAC,CAACS,gBAAgB,CAAC,CAAC;IAErD,OAAO;MACL,GAAGJ,QAAQ;MACX,GAAGE,QAAQ;MACXG,QAAQ,EAAE;QACRC,KAAK,EAAEH;MACT;IACF,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;AACR","ignoreList":[]}
@@ -7,3 +7,11 @@ export * from "./useProvider/useProvider.js";
7
7
  export * from "./asyncWrapBrick.js";
8
8
  export * from "./useNavConfig.js";
9
9
  export * from "./useLazyWrapBrick.js";
10
+ export * from "./usePathParams.js";
11
+ export * from "./useSearchParams.js";
12
+ export * from "./useParams.js";
13
+ export * from "./useHistory.js";
14
+ export * from "./useAuth.js";
15
+ export * from "./useLocation.js";
16
+ export * from "./useFeatureFlags.js";
17
+ export * from "./useSystemInfo.js";
@@ -0,0 +1,20 @@
1
+ import { auth } from "@next-core/easyops-runtime";
2
+ export type AuthInfo = ReturnType<typeof auth.getAuth>;
3
+ /**
4
+ * 获取用户认证信息的 React hooks。
5
+ *
6
+ * **注意**: 使用 useMemo 确保返回的认证信息对象引用稳定,
7
+ * 避免不必要的组件重渲染。认证信息在会话期间保持不变。
8
+ *
9
+ * @example
10
+ *
11
+ * ```tsx
12
+ * function MyReactComponent() {
13
+ * const authInfo = useAuth();
14
+ * return <div>Username: {authInfo.username}</div>;
15
+ * }
16
+ * ```
17
+ *
18
+ * @returns 当前用户的认证信息对象。
19
+ */
20
+ export declare function useAuth(): AuthInfo;
@@ -0,0 +1,40 @@
1
+ import type { FeatureFlags } from "@next-core/types";
2
+ /**
3
+ * 获取特性开关配置的 React hooks。
4
+ *
5
+ * 特性开关用于控制功能的启用或禁用,可以在全局设置或应用级别配置。
6
+ * 使用 useMemo 确保返回的对象引用稳定,避免不必要的组件重渲染。
7
+ *
8
+ * @example
9
+ *
10
+ * ```tsx
11
+ * function MyReactComponent() {
12
+ * const flags = useFeatureFlags();
13
+ *
14
+ * if (flags["my-new-feature"]) {
15
+ * return <NewFeature />;
16
+ * }
17
+ *
18
+ * return <OldFeature />;
19
+ * }
20
+ * ```
21
+ *
22
+ * @example
23
+ *
24
+ * ```tsx
25
+ * // 检查特定功能是否启用
26
+ * function FeatureToggle() {
27
+ * const flags = useFeatureFlags();
28
+ * const isEnabled = flags["experimental-mode"] ?? false;
29
+ *
30
+ * return (
31
+ * <div>
32
+ * Experimental Mode: {isEnabled ? "ON" : "OFF"}
33
+ * </div>
34
+ * );
35
+ * }
36
+ * ```
37
+ *
38
+ * @returns 特性开关配置对象,键为特性名称,值为布尔值。
39
+ */
40
+ export declare function useFeatureFlags(): FeatureFlags;
@@ -0,0 +1,19 @@
1
+ import { type NextHistory } from "@next-core/runtime";
2
+ /**
3
+ * 获取 history 对象的 React hooks。
4
+ *
5
+ * @example
6
+ *
7
+ * ```tsx
8
+ * function MyReactComponent() {
9
+ * const history = useHistory();
10
+ * const handleClick = () => {
11
+ * history.push('/new-page');
12
+ * };
13
+ * return <button onClick={handleClick}>Navigate</button>;
14
+ * }
15
+ * ```
16
+ *
17
+ * @returns history 对象,用于路由导航。
18
+ */
19
+ export declare function useHistory(): NextHistory;
@@ -0,0 +1,16 @@
1
+ import { type NextLocation } from "@next-core/runtime";
2
+ /**
3
+ * 获取当前路由 location 对象的 React hooks。
4
+ *
5
+ * @example
6
+ *
7
+ * ```tsx
8
+ * function MyReactComponent() {
9
+ * const location = useLocation();
10
+ * return <div>Current path: {location.pathname}</div>;
11
+ * }
12
+ * ```
13
+ *
14
+ * @returns 当前路由的 location 对象。
15
+ */
16
+ export declare function useLocation(): NextLocation;
@@ -0,0 +1,24 @@
1
+ /**
2
+ * 获取 URL query 参数的 React hooks,返回普通对象。
3
+ *
4
+ * 与 `useSearchParams` 不同,此 hook 返回一个普通的键值对象,
5
+ * 而不是 URLSearchParams 实例,使用更方便。
6
+ *
7
+ * **注意**:
8
+ * - 重复的参数只会保留最后一个值
9
+ * - 所有值都是字符串类型
10
+ * - 参数值会自动进行 URL 解码
11
+ *
12
+ * @example
13
+ *
14
+ * ```tsx
15
+ * // URL: /page?id=123&name=test
16
+ * function MyReactComponent() {
17
+ * const params = useParams();
18
+ * return <div>ID: {params.id}, Name: {params.name}</div>;
19
+ * }
20
+ * ```
21
+ *
22
+ * @returns URL query 参数对象。
23
+ */
24
+ export declare function useParams(): Record<string, string>;
@@ -0,0 +1,21 @@
1
+ /**
2
+ * 获取当前路由路径参数的 React hooks。
3
+ *
4
+ * **注意**: 此 hook 依赖于运行时上下文中的路由匹配信息。
5
+ * 如果在非路由上下文中使用,将返回空对象。
6
+ *
7
+ * 此 hook 监听 `page.load` 事件以确保在路由匹配完成后更新路径参数。
8
+ * 直接监听 history 变化无法获取正确的参数,因为路由匹配是异步的。
9
+ *
10
+ * @example
11
+ *
12
+ * ```tsx
13
+ * function MyReactComponent() {
14
+ * const pathParams = usePathParams();
15
+ * return <div>User ID: {pathParams.userId}</div>;
16
+ * }
17
+ * ```
18
+ *
19
+ * @returns 当前路由的路径参数对象。
20
+ */
21
+ export declare function usePathParams(): Record<string, string>;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * 获取当前 URL 查询参数的 React hooks。
3
+ *
4
+ * @example
5
+ *
6
+ * ```tsx
7
+ * function MyReactComponent() {
8
+ * const searchParams = useSearchParams();
9
+ * return <div>Search query: {searchParams.get('q')}</div>;
10
+ * }
11
+ * ```
12
+ *
13
+ * @returns 当前 URL 的查询参数 URLSearchParams 对象。
14
+ */
15
+ export declare function useSearchParams(): URLSearchParams;
@@ -0,0 +1,62 @@
1
+ import type { PageInfo } from "@next-core/runtime";
2
+ /**
3
+ * 系统信息接口,包含认证信息、页面信息和品牌设置。
4
+ */
5
+ export interface SystemInfo extends PageInfo {
6
+ /** 用户认证信息 */
7
+ username?: string;
8
+ userInstanceId?: string;
9
+ org?: number;
10
+ [key: string]: unknown;
11
+ /** 系统设置 */
12
+ settings: {
13
+ /** 品牌设置 */
14
+ brand: Record<string, string>;
15
+ };
16
+ }
17
+ /**
18
+ * 获取系统信息的 React hooks。
19
+ *
20
+ * 系统信息包括:
21
+ * - 用户认证信息(username, userInstanceId, org 等)
22
+ * - 页面信息(isInIframe, isInIframeOfNext 等)
23
+ * - 品牌设置(base_title 等)
24
+ *
25
+ * **注意**: 使用 useMemo 确保返回的对象引用稳定,
26
+ * 避免不必要的组件重渲染。系统信息在会话期间保持稳定。
27
+ *
28
+ * @example
29
+ *
30
+ * ```tsx
31
+ * function MyReactComponent() {
32
+ * const sys = useSystemInfo();
33
+ *
34
+ * return (
35
+ * <div>
36
+ * <p>User: {sys.username}</p>
37
+ * <p>Org: {sys.org}</p>
38
+ * <p>In iframe: {sys.isInIframe ? "Yes" : "No"}</p>
39
+ * <p>Brand: {sys.settings.brand.base_title}</p>
40
+ * </div>
41
+ * );
42
+ * }
43
+ * ```
44
+ *
45
+ * @example
46
+ *
47
+ * ```tsx
48
+ * // 检查是否在 iframe 中
49
+ * function IframeDetector() {
50
+ * const sys = useSystemInfo();
51
+ *
52
+ * if (sys.isInIframe) {
53
+ * return <div>Running in iframe mode</div>;
54
+ * }
55
+ *
56
+ * return <div>Running in standalone mode</div>;
57
+ * }
58
+ * ```
59
+ *
60
+ * @returns 系统信息对象。
61
+ */
62
+ export declare function useSystemInfo(): SystemInfo;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-core/react-runtime",
3
- "version": "1.7.47",
3
+ "version": "1.9.0",
4
4
  "homepage": "https://github.com/easyops-cn/next-core/tree/v3/packages/react-runtime",
5
5
  "license": "GPL-3.0",
6
6
  "repository": {
@@ -49,5 +49,5 @@
49
49
  "@next-core/test-next": "^2.0.1",
50
50
  "jest-fetch-mock": "^3.0.3"
51
51
  },
52
- "gitHead": "9943d00dfa9228c45a10362013cfc10103f771a3"
52
+ "gitHead": "381ef5fdaae5f5134bae63da98fee74186eddb56"
53
53
  }