@xfe-repo/web-micro 1.2.3 → 1.2.5

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/dist/index.d.mts CHANGED
@@ -13,6 +13,7 @@ type MicroAppProps = {
13
13
  data?: Record<string, any>;
14
14
  loadingFallback?: React.ReactNode;
15
15
  errorFallback?: React.ReactNode;
16
+ aHrefResolver?: (hrefValue: string) => string;
16
17
  };
17
18
  declare const MicroAppRoute: React.MemoExoticComponent<(props: MicroAppProps) => react_jsx_runtime.JSX.Element>;
18
19
 
@@ -21,6 +22,11 @@ type MicroAppLinkProps = LinkProps & {
21
22
  microApp?: string;
22
23
  };
23
24
  declare const MicroAppLink: React.MemoExoticComponent<(props: MicroAppLinkProps) => react_jsx_runtime.JSX.Element>;
25
+ type NavigateToWithMicroAppOptions = {
26
+ replace?: boolean;
27
+ state?: any;
28
+ };
29
+ declare const navigateToWithMicroApp: (to: string, options?: NavigateToWithMicroAppOptions) => void;
24
30
 
25
31
  declare enum MicroAppEventEnum {
26
32
  DISPATCH_ACTION = "dispatchAction"
@@ -55,7 +61,9 @@ declare class MicroAppEventCenter {
55
61
  addDispatchListener(type: string, listener: MicroAppDispatchListener): void;
56
62
  removeDispatchListener(type: string, listener?: MicroAppDispatchListener): boolean | undefined;
57
63
  }
64
+ type AHrefResolverType = (hrefValue: string) => string;
65
+ declare const aHrefResolverCollector: Record<string, AHrefResolverType>;
58
66
 
59
67
  declare const microApp: _micro_zoe_micro_app.MicroApp;
60
68
 
61
- export { type MicroAppActionMetaType, type MicroAppActionType, type MicroAppDispatchListener, MicroAppEventCenter, type MicroAppEventCenterConfig, MicroAppEventEnum, type MicroAppGlobalDataType, MicroAppLink, type MicroAppProps, MicroAppRoute, microApp };
69
+ export { type MicroAppActionMetaType, type MicroAppActionType, type MicroAppDispatchListener, MicroAppEventCenter, type MicroAppEventCenterConfig, MicroAppEventEnum, type MicroAppGlobalDataType, MicroAppLink, type MicroAppProps, MicroAppRoute, type NavigateToWithMicroAppOptions, aHrefResolverCollector, microApp, navigateToWithMicroApp };
package/dist/index.d.ts CHANGED
@@ -13,6 +13,7 @@ type MicroAppProps = {
13
13
  data?: Record<string, any>;
14
14
  loadingFallback?: React.ReactNode;
15
15
  errorFallback?: React.ReactNode;
16
+ aHrefResolver?: (hrefValue: string) => string;
16
17
  };
17
18
  declare const MicroAppRoute: React.MemoExoticComponent<(props: MicroAppProps) => react_jsx_runtime.JSX.Element>;
18
19
 
@@ -21,6 +22,11 @@ type MicroAppLinkProps = LinkProps & {
21
22
  microApp?: string;
22
23
  };
23
24
  declare const MicroAppLink: React.MemoExoticComponent<(props: MicroAppLinkProps) => react_jsx_runtime.JSX.Element>;
25
+ type NavigateToWithMicroAppOptions = {
26
+ replace?: boolean;
27
+ state?: any;
28
+ };
29
+ declare const navigateToWithMicroApp: (to: string, options?: NavigateToWithMicroAppOptions) => void;
24
30
 
25
31
  declare enum MicroAppEventEnum {
26
32
  DISPATCH_ACTION = "dispatchAction"
@@ -55,7 +61,9 @@ declare class MicroAppEventCenter {
55
61
  addDispatchListener(type: string, listener: MicroAppDispatchListener): void;
56
62
  removeDispatchListener(type: string, listener?: MicroAppDispatchListener): boolean | undefined;
57
63
  }
64
+ type AHrefResolverType = (hrefValue: string) => string;
65
+ declare const aHrefResolverCollector: Record<string, AHrefResolverType>;
58
66
 
59
67
  declare const microApp: _micro_zoe_micro_app.MicroApp;
60
68
 
61
- export { type MicroAppActionMetaType, type MicroAppActionType, type MicroAppDispatchListener, MicroAppEventCenter, type MicroAppEventCenterConfig, MicroAppEventEnum, type MicroAppGlobalDataType, MicroAppLink, type MicroAppProps, MicroAppRoute, microApp };
69
+ export { type MicroAppActionMetaType, type MicroAppActionType, type MicroAppDispatchListener, MicroAppEventCenter, type MicroAppEventCenterConfig, MicroAppEventEnum, type MicroAppGlobalDataType, MicroAppLink, type MicroAppProps, MicroAppRoute, type NavigateToWithMicroAppOptions, aHrefResolverCollector, microApp, navigateToWithMicroApp };
package/dist/index.js CHANGED
@@ -292,38 +292,38 @@ __export(src_exports, {
292
292
  MicroAppRoute: function() {
293
293
  return MicroAppRoute;
294
294
  },
295
+ aHrefResolverCollector: function() {
296
+ return aHrefResolverCollector;
297
+ },
295
298
  microApp: function() {
296
- return microApp2;
299
+ return microApp;
300
+ },
301
+ navigateToWithMicroApp: function() {
302
+ return navigateToWithMicroApp;
297
303
  }
298
304
  });
299
305
  module.exports = __toCommonJS(src_exports);
300
- var import_micro_app2 = __toESM(require("@micro-zoe/micro-app"));
301
306
  var import_env = require("@xfe-repo/web-utils/env");
302
307
  var import_tools = require("@xfe-repo/web-utils/tools");
308
+ var import_micro_app = __toESM(require("@micro-zoe/micro-app"));
303
309
  __reExport(src_exports, require("@micro-zoe/micro-app"), module.exports);
304
310
  // src/MicroAppRoute.tsx
305
311
  var import_react = require("react");
306
312
  var import_web_router = require("@xfe-repo/web-router");
307
- var import_micro_app = __toESM(require("@micro-zoe/micro-app"));
308
313
  var import_jsx_custom_event = __toESM(require("@micro-zoe/micro-app/polyfill/jsx-custom-event.js"));
309
314
  var MicroAppRoute = (0, import_react.memo)(function(props) {
310
- var name = props.name, baseRoute = props.baseRoute, url = props.url, keepAlive = props.keepAlive, className = props.className, data = props.data, loadingFallback = props.loadingFallback, errorFallback = props.errorFallback;
311
- var navigate = (0, import_web_router.useNavigate)();
312
- var location = (0, import_web_router.useLocation)();
315
+ var name = props.name, baseRoute = props.baseRoute, url = props.url, keepAlive = props.keepAlive, className = props.className, data = props.data, loadingFallback = props.loadingFallback, errorFallback = props.errorFallback, aHrefResolver = props.aHrefResolver;
316
+ if (aHrefResolver) aHrefResolverCollector[name] = aHrefResolver;
313
317
  var _ref = _sliced_to_array((0, import_react.useState)(false), 2), microAppIsShow = _ref[0], setMicroAppIsShow = _ref[1];
314
318
  var _ref1 = _sliced_to_array((0, import_react.useState)(false), 2), microAppIsError = _ref1[0], setMicroAppIsError = _ref1[1];
315
319
  var handleMicroAppMounted = (0, import_react.useCallback)(function() {
316
- var path = location.pathname + location.search;
317
- navigate(path, {
318
- replace: true
319
- });
320
+ var navigator = (0, import_web_router.getClientNavigator)();
321
+ navigator.replace(location.pathname + location.search, history.state);
320
322
  setMicroAppIsShow(true);
321
- }, [
322
- location
323
- ]);
323
+ }, []);
324
324
  var handleMicroAppAfterShow = (0, import_react.useCallback)(function() {
325
325
  var path = location.pathname + location.search;
326
- import_micro_app.default.router.push({
326
+ microApp.router.push({
327
327
  name: "dashboard",
328
328
  path: path,
329
329
  replace: true
@@ -331,9 +331,7 @@ var MicroAppRoute = (0, import_react.memo)(function(props) {
331
331
  return console.error(e);
332
332
  });
333
333
  setMicroAppIsShow(true);
334
- }, [
335
- location
336
- ]);
334
+ }, []);
337
335
  var handleMicroAppError = (0, import_react.useCallback)(function() {
338
336
  setMicroAppIsError(true);
339
337
  }, []);
@@ -361,27 +359,13 @@ var import_react2 = require("react");
361
359
  var import_web_router2 = require("@xfe-repo/web-router");
362
360
  var import_jsx_runtime = require("react/jsx-runtime");
363
361
  var MicroAppLink = (0, import_react2.memo)(function(props) {
364
- var microAppBaseName = props.microApp, to = props.to, children = props.children, replace = props.replace, className = props.className;
365
- var navigate = (0, import_web_router2.useNavigate)();
362
+ var to = props.to, children = props.children, replace = props.replace, className = props.className;
366
363
  var handleLink = (0, import_react2.useCallback)(function(e) {
367
364
  e.preventDefault();
368
- navigate(to, {
369
- replace: replace
370
- });
371
- if (!microAppBaseName) return;
372
- var activeApps = microApp2.getActiveApps({
373
- excludeHiddenApp: true
374
- });
375
- if (activeApps.includes(microAppBaseName)) microApp2.router.push({
376
- name: microAppBaseName,
377
- path: to,
365
+ navigateToWithMicroApp(to, {
378
366
  replace: replace
379
- }).catch(function(e2) {
380
- return e2;
381
367
  });
382
368
  }, [
383
- navigate,
384
- microAppBaseName,
385
369
  to,
386
370
  replace
387
371
  ]);
@@ -392,6 +376,24 @@ var MicroAppLink = (0, import_react2.memo)(function(props) {
392
376
  children: children
393
377
  });
394
378
  });
379
+ var navigateToWithMicroApp = function(to, options) {
380
+ var _ref = options || {}, replace = _ref.replace, state = _ref.state;
381
+ var navigator = (0, import_web_router2.getClientNavigator)();
382
+ replace ? navigator.replace(to, state) : navigator.push(to, state);
383
+ var microAppBaseName = to.split("/")[1];
384
+ if (!microAppBaseName) return;
385
+ var activeApps = microApp.getActiveApps({
386
+ excludeHiddenApp: true
387
+ });
388
+ if (activeApps.includes(microAppBaseName)) microApp.router.push({
389
+ name: microAppBaseName,
390
+ path: to,
391
+ replace: replace,
392
+ state: state
393
+ }).catch(function(e) {
394
+ return e;
395
+ });
396
+ };
395
397
  // src/index.ts
396
398
  var MicroAppEventEnum = /* @__PURE__ */ function(MicroAppEventEnum2) {
397
399
  MicroAppEventEnum2["DISPATCH_ACTION"] = "dispatchAction";
@@ -403,7 +405,7 @@ var MicroAppEventCenter = /*#__PURE__*/ function() {
403
405
  _class_call_check(this, MicroAppEventCenter);
404
406
  this.dispatchListeners = {};
405
407
  this.config = config;
406
- if (config.isMain) window.microGlobalEventCenter = new import_micro_app2.EventCenterForMicroApp("global");
408
+ if (config.isMain) window.microGlobalEventCenter = new import_micro_app.EventCenterForMicroApp("global");
407
409
  if (!window.microGlobalEventCenter) throw new Error("microGlobalEventCenter is not defined, please check if the main app is loaded first");
408
410
  window.microGlobalEventCenter.addGlobalDataListener(function(globalData) {
409
411
  return _this.listener(globalData);
@@ -570,12 +572,19 @@ var MicroAppEventCenter = /*#__PURE__*/ function() {
570
572
  ]);
571
573
  return MicroAppEventCenter;
572
574
  }();
573
- var microApp2 = import_micro_app2.default;
575
+ var aHrefResolverCollector = {};
576
+ import_micro_app.default.options.aHrefResolver = function(hrefValue, appName) {
577
+ var _aHrefResolverCollector_appName;
578
+ return ((_aHrefResolverCollector_appName = aHrefResolverCollector[appName]) === null || _aHrefResolverCollector_appName === void 0 ? void 0 : _aHrefResolverCollector_appName.call(aHrefResolverCollector, hrefValue)) || hrefValue;
579
+ };
580
+ var microApp = import_micro_app.default;
574
581
  // Annotate the CommonJS export names for ESM import in node:
575
582
  0 && (module.exports = _object_spread({
576
583
  MicroAppEventCenter: MicroAppEventCenter,
577
584
  MicroAppEventEnum: MicroAppEventEnum,
578
585
  MicroAppLink: MicroAppLink,
579
586
  MicroAppRoute: MicroAppRoute,
580
- microApp: microApp
587
+ aHrefResolverCollector: aHrefResolverCollector,
588
+ microApp: microApp,
589
+ navigateToWithMicroApp: navigateToWithMicroApp
581
590
  }, require("@micro-zoe/micro-app")));
package/dist/index.mjs CHANGED
@@ -216,30 +216,24 @@ function _ts_generator(thisArg, body) {
216
216
  };
217
217
  }
218
218
  }
219
- import originMicroApp, { EventCenterForMicroApp } from "@micro-zoe/micro-app";
220
219
  import { isProduction } from "@xfe-repo/web-utils/env";
221
220
  import { uuid } from "@xfe-repo/web-utils/tools";
221
+ import originMicroApp, { EventCenterForMicroApp } from "@micro-zoe/micro-app";
222
222
  export * from "@micro-zoe/micro-app";
223
223
  // src/MicroAppRoute.tsx
224
224
  import { memo, useCallback, useState } from "react";
225
- import { useNavigate, useLocation } from "@xfe-repo/web-router";
226
- import microApp from "@micro-zoe/micro-app";
225
+ import { getClientNavigator } from "@xfe-repo/web-router";
227
226
  import jsxCustomEvent from "@micro-zoe/micro-app/polyfill/jsx-custom-event.js";
228
227
  var MicroAppRoute = memo(function(props) {
229
- var name = props.name, baseRoute = props.baseRoute, url = props.url, keepAlive = props.keepAlive, className = props.className, data = props.data, loadingFallback = props.loadingFallback, errorFallback = props.errorFallback;
230
- var navigate = useNavigate();
231
- var location = useLocation();
228
+ var name = props.name, baseRoute = props.baseRoute, url = props.url, keepAlive = props.keepAlive, className = props.className, data = props.data, loadingFallback = props.loadingFallback, errorFallback = props.errorFallback, aHrefResolver = props.aHrefResolver;
229
+ if (aHrefResolver) aHrefResolverCollector[name] = aHrefResolver;
232
230
  var _useState = _sliced_to_array(useState(false), 2), microAppIsShow = _useState[0], setMicroAppIsShow = _useState[1];
233
231
  var _useState1 = _sliced_to_array(useState(false), 2), microAppIsError = _useState1[0], setMicroAppIsError = _useState1[1];
234
232
  var handleMicroAppMounted = useCallback(function() {
235
- var path = location.pathname + location.search;
236
- navigate(path, {
237
- replace: true
238
- });
233
+ var navigator = getClientNavigator();
234
+ navigator.replace(location.pathname + location.search, history.state);
239
235
  setMicroAppIsShow(true);
240
- }, [
241
- location
242
- ]);
236
+ }, []);
243
237
  var handleMicroAppAfterShow = useCallback(function() {
244
238
  var path = location.pathname + location.search;
245
239
  microApp.router.push({
@@ -250,9 +244,7 @@ var MicroAppRoute = memo(function(props) {
250
244
  return console.error(e);
251
245
  });
252
246
  setMicroAppIsShow(true);
253
- }, [
254
- location
255
- ]);
247
+ }, []);
256
248
  var handleMicroAppError = useCallback(function() {
257
249
  setMicroAppIsError(true);
258
250
  }, []);
@@ -277,30 +269,16 @@ var MicroAppRoute = memo(function(props) {
277
269
  });
278
270
  // src/MicroAppLink.tsx
279
271
  import { memo as memo2, useCallback as useCallback2 } from "react";
280
- import { useNavigate as useNavigate2 } from "@xfe-repo/web-router";
272
+ import { getClientNavigator as getClientNavigator2 } from "@xfe-repo/web-router";
281
273
  import { jsx } from "react/jsx-runtime";
282
274
  var MicroAppLink = memo2(function(props) {
283
- var microAppBaseName = props.microApp, to = props.to, children = props.children, replace = props.replace, className = props.className;
284
- var navigate = useNavigate2();
275
+ var to = props.to, children = props.children, replace = props.replace, className = props.className;
285
276
  var handleLink = useCallback2(function(e) {
286
277
  e.preventDefault();
287
- navigate(to, {
288
- replace: replace
289
- });
290
- if (!microAppBaseName) return;
291
- var activeApps = microApp2.getActiveApps({
292
- excludeHiddenApp: true
293
- });
294
- if (activeApps.includes(microAppBaseName)) microApp2.router.push({
295
- name: microAppBaseName,
296
- path: to,
278
+ navigateToWithMicroApp(to, {
297
279
  replace: replace
298
- }).catch(function(e2) {
299
- return e2;
300
280
  });
301
281
  }, [
302
- navigate,
303
- microAppBaseName,
304
282
  to,
305
283
  replace
306
284
  ]);
@@ -311,6 +289,24 @@ var MicroAppLink = memo2(function(props) {
311
289
  children: children
312
290
  });
313
291
  });
292
+ var navigateToWithMicroApp = function(to, options) {
293
+ var _ref = options || {}, replace = _ref.replace, state = _ref.state;
294
+ var navigator = getClientNavigator2();
295
+ replace ? navigator.replace(to, state) : navigator.push(to, state);
296
+ var microAppBaseName = to.split("/")[1];
297
+ if (!microAppBaseName) return;
298
+ var activeApps = microApp.getActiveApps({
299
+ excludeHiddenApp: true
300
+ });
301
+ if (activeApps.includes(microAppBaseName)) microApp.router.push({
302
+ name: microAppBaseName,
303
+ path: to,
304
+ replace: replace,
305
+ state: state
306
+ }).catch(function(e) {
307
+ return e;
308
+ });
309
+ };
314
310
  // src/index.ts
315
311
  var MicroAppEventEnum = /* @__PURE__ */ function(MicroAppEventEnum2) {
316
312
  MicroAppEventEnum2["DISPATCH_ACTION"] = "dispatchAction";
@@ -490,5 +486,10 @@ var MicroAppEventCenter = /*#__PURE__*/ function() {
490
486
  ]);
491
487
  return MicroAppEventCenter;
492
488
  }();
493
- var microApp2 = originMicroApp;
494
- export { MicroAppEventCenter, MicroAppEventEnum, MicroAppLink, MicroAppRoute, microApp2 as microApp };
489
+ var aHrefResolverCollector = {};
490
+ originMicroApp.options.aHrefResolver = function(hrefValue, appName) {
491
+ var _aHrefResolverCollector_appName;
492
+ return ((_aHrefResolverCollector_appName = aHrefResolverCollector[appName]) === null || _aHrefResolverCollector_appName === void 0 ? void 0 : _aHrefResolverCollector_appName.call(aHrefResolverCollector, hrefValue)) || hrefValue;
493
+ };
494
+ var microApp = originMicroApp;
495
+ export { MicroAppEventCenter, MicroAppEventEnum, MicroAppLink, MicroAppRoute, aHrefResolverCollector, microApp, navigateToWithMicroApp };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xfe-repo/web-micro",
3
- "version": "1.2.3",
3
+ "version": "1.2.5",
4
4
  "sideEffects": false,
5
5
  "module": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -20,15 +20,17 @@
20
20
  "dist"
21
21
  ],
22
22
  "dependencies": {
23
- "@micro-zoe/micro-app": "1.0.0-rc.20",
24
- "@xfe-repo/web-router": "1.2.2",
25
- "@xfe-repo/web-utils": "1.3.6"
23
+ "@micro-zoe/micro-app": "1.0.0-rc.24",
24
+ "@xfe-repo/web-utils": "1.3.7"
26
25
  },
27
26
  "devDependencies": {
28
27
  "@types/node": "^20.16.5",
29
28
  "@types/react": "^18",
30
- "@xfe-repo/eslint-config": "0.0.5",
31
- "@xfe-repo/typescript-config": "0.0.6"
29
+ "@xfe-repo/typescript-config": "0.0.6",
30
+ "@xfe-repo/eslint-config": "0.0.5"
31
+ },
32
+ "peerDependencies": {
33
+ "@xfe-repo/web-router": "1.2.3"
32
34
  },
33
35
  "publishConfig": {
34
36
  "registry": "https://registry.npmjs.org/"