@etsoo/smarterp-core 1.0.22 → 1.0.24

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.
@@ -39,16 +39,40 @@ function AppSwitchPopover(props) {
39
39
  if (index >= 0)
40
40
  data.splice(index, 1);
41
41
  return ((0, jsx_runtime_1.jsxs)(material_1.Stack, { direction: "column", margin: 2, children: [data.map((appData) => ((0, jsx_runtime_1.jsx)(material_1.Button, { onClick: async () => {
42
- const tasks = appData.urls.map((u) => app.core.authApi.getLogInUrl("APP", { showLoading: false, onError: () => false }, u.api));
42
+ /*
43
+ // Method 1, get the login URL and redirect
44
+ const tasks = appData.urls.map((u) =>
45
+ app.core.authApi.getLogInUrl(
46
+ "APP",
47
+ { showLoading: false, onError: () => false },
48
+ u.api
49
+ )
50
+ );
51
+
43
52
  const result = await Promise.allSettled(tasks);
44
- const success = result.find((r) => r.status === "fulfilled" && r.value != null);
53
+ const success = result.find(
54
+ (r) => r.status === "fulfilled" && r.value != null
55
+ ) as PromiseFulfilledResult<string> | undefined;
45
56
  if (success) {
46
- app.clearSession();
47
- app.loadUrlEx(success.value);
57
+ app.clearSession();
58
+ app.loadUrlEx(success.value);
59
+ } else {
60
+ app.notifier.alert(app.get("networkFailure"));
48
61
  }
49
- else {
50
- app.notifier.alert(app.get("networkFailure"));
62
+ */
63
+ // Method 2, get the RequestAuth, sign in and redirect
64
+ const tasks = appData.urls.map((u) => app.core.authApi.getAuthRequest("APP", { showLoading: false, onError: () => false }, u.api));
65
+ const result = await Promise.allSettled(tasks);
66
+ const success = result.find((r) => r.status === "fulfilled" && r.value != null);
67
+ if (success) {
68
+ const url = await app.core.authApi.authRequest(success.value);
69
+ if (url) {
70
+ app.clearSession();
71
+ app.loadUrlEx(url);
72
+ return;
73
+ }
51
74
  }
75
+ app.notifier.alert(app.get("networkFailure"));
52
76
  }, children: app.core.getAppName(appData) }, appData.id))), (data.length === 0 || data.length === maxItems) && ((0, jsx_runtime_1.jsxs)(material_1.Button, { onClick: () => navigate("./app/my"), children: [labels.more, "..."] }))] }));
53
77
  } }));
54
78
  }
@@ -65,4 +65,9 @@ export type OrgReadDto = {
65
65
  * 用户数
66
66
  */
67
67
  users: number;
68
+ /**
69
+ * Persons
70
+ * 人员数
71
+ */
72
+ persons: number;
68
73
  };
@@ -33,16 +33,40 @@ export function AppSwitchPopover(props) {
33
33
  if (index >= 0)
34
34
  data.splice(index, 1);
35
35
  return (_jsxs(Stack, { direction: "column", margin: 2, children: [data.map((appData) => (_jsx(Button, { onClick: async () => {
36
- const tasks = appData.urls.map((u) => app.core.authApi.getLogInUrl("APP", { showLoading: false, onError: () => false }, u.api));
36
+ /*
37
+ // Method 1, get the login URL and redirect
38
+ const tasks = appData.urls.map((u) =>
39
+ app.core.authApi.getLogInUrl(
40
+ "APP",
41
+ { showLoading: false, onError: () => false },
42
+ u.api
43
+ )
44
+ );
45
+
37
46
  const result = await Promise.allSettled(tasks);
38
- const success = result.find((r) => r.status === "fulfilled" && r.value != null);
47
+ const success = result.find(
48
+ (r) => r.status === "fulfilled" && r.value != null
49
+ ) as PromiseFulfilledResult<string> | undefined;
39
50
  if (success) {
40
- app.clearSession();
41
- app.loadUrlEx(success.value);
51
+ app.clearSession();
52
+ app.loadUrlEx(success.value);
53
+ } else {
54
+ app.notifier.alert(app.get("networkFailure"));
42
55
  }
43
- else {
44
- app.notifier.alert(app.get("networkFailure"));
56
+ */
57
+ // Method 2, get the RequestAuth, sign in and redirect
58
+ const tasks = appData.urls.map((u) => app.core.authApi.getAuthRequest("APP", { showLoading: false, onError: () => false }, u.api));
59
+ const result = await Promise.allSettled(tasks);
60
+ const success = result.find((r) => r.status === "fulfilled" && r.value != null);
61
+ if (success) {
62
+ const url = await app.core.authApi.authRequest(success.value);
63
+ if (url) {
64
+ app.clearSession();
65
+ app.loadUrlEx(url);
66
+ return;
67
+ }
45
68
  }
69
+ app.notifier.alert(app.get("networkFailure"));
46
70
  }, children: app.core.getAppName(appData) }, appData.id))), (data.length === 0 || data.length === maxItems) && (_jsxs(Button, { onClick: () => navigate("./app/my"), children: [labels.more, "..."] }))] }));
47
71
  } }));
48
72
  }
@@ -65,4 +65,9 @@ export type OrgReadDto = {
65
65
  * 用户数
66
66
  */
67
67
  users: number;
68
+ /**
69
+ * Persons
70
+ * 人员数
71
+ */
72
+ persons: number;
68
73
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@etsoo/smarterp-core",
3
- "version": "1.0.22",
3
+ "version": "1.0.24",
4
4
  "description": "TypeScript APIs for SmartERP Core",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/mjs/index.js",
@@ -41,24 +41,24 @@
41
41
  "homepage": "https://github.com/ETSOO/etsoo-smarterp-core#readme",
42
42
  "devDependencies": {
43
43
  "@babel/cli": "^7.26.4",
44
- "@babel/core": "^7.26.9",
45
- "@babel/plugin-transform-runtime": "^7.26.9",
44
+ "@babel/core": "^7.26.10",
45
+ "@babel/plugin-transform-runtime": "^7.26.10",
46
46
  "@babel/preset-env": "^7.26.9",
47
- "@babel/runtime-corejs3": "^7.26.9",
47
+ "@babel/runtime-corejs3": "^7.26.10",
48
48
  "@types/react": "^18.3.1",
49
49
  "@types/react-dom": "^18.3.1",
50
50
  "@vitejs/plugin-react": "^4.3.4",
51
51
  "jsdom": "^26.0.0",
52
- "typescript": "^5.7.3",
53
- "vitest": "^3.0.7"
52
+ "typescript": "^5.8.2",
53
+ "vitest": "^3.0.8"
54
54
  },
55
55
  "dependencies": {
56
- "@etsoo/appscript": "^1.6.15",
57
- "@etsoo/materialui": "^1.4.96",
56
+ "@etsoo/appscript": "^1.6.18",
57
+ "@etsoo/materialui": "^1.4.97",
58
58
  "@etsoo/react": "^1.8.32",
59
59
  "@etsoo/shared": "^1.2.62",
60
- "@etsoo/toolpad": "^1.0.18",
61
- "@mui/material": "^6.4.6",
60
+ "@etsoo/toolpad": "^1.0.19",
61
+ "@mui/material": "^6.4.7",
62
62
  "react": "^18.3.1",
63
63
  "react-dom": "^18.3.1"
64
64
  }
@@ -5,6 +5,7 @@ import { ButtonPopover } from "@etsoo/materialui";
5
5
  import { useRequiredAppContext } from "../../ICoreServiceApp";
6
6
  import { IdentityType } from "../../dto/IdentityType";
7
7
  import { AppData } from "../../dto/app/AppData";
8
+ import { AuthRequest } from "@etsoo/appscript";
8
9
 
9
10
  export type AppSwitchPopoverProps = {
10
11
  appName: string;
@@ -69,6 +70,8 @@ export function AppSwitchPopover(props: AppSwitchPopoverProps) {
69
70
  <Button
70
71
  key={appData.id}
71
72
  onClick={async () => {
73
+ /*
74
+ // Method 1, get the login URL and redirect
72
75
  const tasks = appData.urls.map((u) =>
73
76
  app.core.authApi.getLogInUrl(
74
77
  "APP",
@@ -87,6 +90,33 @@ export function AppSwitchPopover(props: AppSwitchPopoverProps) {
87
90
  } else {
88
91
  app.notifier.alert(app.get("networkFailure"));
89
92
  }
93
+ */
94
+
95
+ // Method 2, get the RequestAuth, sign in and redirect
96
+ const tasks = appData.urls.map((u) =>
97
+ app.core.authApi.getAuthRequest(
98
+ "APP",
99
+ { showLoading: false, onError: () => false },
100
+ u.api
101
+ )
102
+ );
103
+
104
+ const result = await Promise.allSettled(tasks);
105
+ const success = result.find(
106
+ (r) => r.status === "fulfilled" && r.value != null
107
+ ) as PromiseFulfilledResult<AuthRequest> | undefined;
108
+ if (success) {
109
+ const url = await app.core.authApi.authRequest(
110
+ success.value
111
+ );
112
+ if (url) {
113
+ app.clearSession();
114
+ app.loadUrlEx(url);
115
+ return;
116
+ }
117
+ }
118
+
119
+ app.notifier.alert(app.get("networkFailure"));
90
120
  }}
91
121
  >
92
122
  {app.core.getAppName(appData)}
@@ -80,4 +80,10 @@ export type OrgReadDto = {
80
80
  * 用户数
81
81
  */
82
82
  users: number;
83
+
84
+ /**
85
+ * Persons
86
+ * 人员数
87
+ */
88
+ persons: number;
83
89
  };