react-native-fxview 1.0.2-beta3 → 1.0.2-beta4
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/FXView.js +9 -5
- package/FXView.tsx +6 -5
- package/FXViewManager.d.ts +8 -0
- package/FXViewManager.js +37 -25
- package/FXViewManager.ts +41 -25
- package/index.d.ts +2 -1
- package/index.js +3 -2
- package/index.ts +2 -1
- package/logger/FXLogger-README.md +248 -0
- package/logger/FXLogger.d.ts +106 -0
- package/logger/FXLogger.js +237 -0
- package/logger/FXLogger.ts +281 -0
- package/package.json +5 -1
package/FXView.js
CHANGED
|
@@ -43,10 +43,14 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
43
43
|
}
|
|
44
44
|
return t;
|
|
45
45
|
};
|
|
46
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
47
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
48
|
+
};
|
|
46
49
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
47
50
|
const react_1 = __importStar(require("react"));
|
|
48
51
|
const react_native_1 = require("react-native");
|
|
49
52
|
const FXViewManager_1 = require("./FXViewManager");
|
|
53
|
+
const FXLogger_1 = __importDefault(require("./logger/FXLogger"));
|
|
50
54
|
class FXView extends react_1.Component {
|
|
51
55
|
constructor(props) {
|
|
52
56
|
super(props);
|
|
@@ -63,18 +67,18 @@ class FXView extends react_1.Component {
|
|
|
63
67
|
`auto_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`;
|
|
64
68
|
}
|
|
65
69
|
componentDidMount() {
|
|
66
|
-
|
|
70
|
+
FXLogger_1.default.debug("FXView", `mounted with viewId: ${this.viewId}`);
|
|
67
71
|
// 注册到视图管理器
|
|
68
72
|
FXViewManager_1.FXViewManager.getInstance().registerView(this.viewId, this.updateComponents);
|
|
69
73
|
// 初始更新
|
|
70
74
|
this.updateComponents();
|
|
71
75
|
}
|
|
72
76
|
componentDidUpdate(_prevProps) {
|
|
73
|
-
|
|
77
|
+
FXLogger_1.default.debug("FXView", `updated: ${this.viewId}`);
|
|
74
78
|
const newViewId = this.props.fxViewId || this.viewId;
|
|
75
79
|
if (newViewId !== this.viewId) {
|
|
76
80
|
// ID 变化时重新注册
|
|
77
|
-
|
|
81
|
+
FXLogger_1.default.debug("FXView", `updated changed: ${this.viewId}`);
|
|
78
82
|
FXViewManager_1.FXViewManager.getInstance().unregisterView(this.viewId);
|
|
79
83
|
this.viewId = newViewId;
|
|
80
84
|
FXViewManager_1.FXViewManager.getInstance().registerView(this.viewId, this.updateComponents);
|
|
@@ -82,7 +86,7 @@ class FXView extends react_1.Component {
|
|
|
82
86
|
}
|
|
83
87
|
}
|
|
84
88
|
componentWillUnmount() {
|
|
85
|
-
|
|
89
|
+
FXLogger_1.default.debug("FXView", `unmounted: ${this.viewId}`);
|
|
86
90
|
// 注销视图(会自动清理所有组件和回调)
|
|
87
91
|
FXViewManager_1.FXViewManager.getInstance().unregisterView(this.viewId);
|
|
88
92
|
}
|
|
@@ -91,7 +95,7 @@ class FXView extends react_1.Component {
|
|
|
91
95
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
92
96
|
const _a = this.props, { fxViewId } = _a, restProps = __rest(_a, ["fxViewId"]);
|
|
93
97
|
const { components } = this.state;
|
|
94
|
-
|
|
98
|
+
FXLogger_1.default.debug("FXView", `rendering components: ${components.length}`);
|
|
95
99
|
return (<react_native_1.View {...restProps}>
|
|
96
100
|
{children}
|
|
97
101
|
{components.map((item) => item.visible ? (<react_1.default.Fragment key={item.componentId}>
|
package/FXView.tsx
CHANGED
|
@@ -2,6 +2,7 @@ import React, { Component } from "react";
|
|
|
2
2
|
import { View, ViewProps } from "react-native";
|
|
3
3
|
import { FXComponentItem } from "./types";
|
|
4
4
|
import { FXViewManager } from "./FXViewManager";
|
|
5
|
+
import logger from "./logger/FXLogger";
|
|
5
6
|
|
|
6
7
|
interface FXViewProps extends ViewProps {
|
|
7
8
|
fxViewId?: string; // 动态标识属性,可选
|
|
@@ -27,7 +28,7 @@ export default class FXView extends Component<FXViewProps, FXViewState> {
|
|
|
27
28
|
}
|
|
28
29
|
|
|
29
30
|
componentDidMount() {
|
|
30
|
-
|
|
31
|
+
logger.debug("FXView", `mounted with viewId: ${this.viewId}`);
|
|
31
32
|
// 注册到视图管理器
|
|
32
33
|
FXViewManager.getInstance().registerView(
|
|
33
34
|
this.viewId,
|
|
@@ -38,12 +39,12 @@ export default class FXView extends Component<FXViewProps, FXViewState> {
|
|
|
38
39
|
}
|
|
39
40
|
|
|
40
41
|
componentDidUpdate(_prevProps: FXViewProps) {
|
|
41
|
-
|
|
42
|
+
logger.debug("FXView", `updated: ${this.viewId}`);
|
|
42
43
|
const newViewId = this.props.fxViewId || this.viewId;
|
|
43
44
|
|
|
44
45
|
if (newViewId !== this.viewId) {
|
|
45
46
|
// ID 变化时重新注册
|
|
46
|
-
|
|
47
|
+
logger.debug("FXView", `updated changed: ${this.viewId}`);
|
|
47
48
|
FXViewManager.getInstance().unregisterView(this.viewId);
|
|
48
49
|
this.viewId = newViewId;
|
|
49
50
|
|
|
@@ -56,7 +57,7 @@ export default class FXView extends Component<FXViewProps, FXViewState> {
|
|
|
56
57
|
}
|
|
57
58
|
|
|
58
59
|
componentWillUnmount() {
|
|
59
|
-
|
|
60
|
+
logger.debug("FXView", `unmounted: ${this.viewId}`);
|
|
60
61
|
// 注销视图(会自动清理所有组件和回调)
|
|
61
62
|
FXViewManager.getInstance().unregisterView(this.viewId);
|
|
62
63
|
}
|
|
@@ -71,7 +72,7 @@ export default class FXView extends Component<FXViewProps, FXViewState> {
|
|
|
71
72
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
72
73
|
const { fxViewId, ...restProps } = this.props;
|
|
73
74
|
const { components } = this.state;
|
|
74
|
-
|
|
75
|
+
logger.debug("FXView", `rendering components: ${components.length}`);
|
|
75
76
|
return (
|
|
76
77
|
<View {...restProps}>
|
|
77
78
|
{children}
|
package/FXViewManager.d.ts
CHANGED
|
@@ -84,7 +84,15 @@ export declare class FXViewManager {
|
|
|
84
84
|
* @returns 是否成功注销
|
|
85
85
|
*/
|
|
86
86
|
unregisterView(fxViewId: string): boolean;
|
|
87
|
+
/**
|
|
88
|
+
* 注册生命周期回调
|
|
89
|
+
* @param callbacks 生命周期回调
|
|
90
|
+
*/
|
|
87
91
|
registerLifecycleCallbacks(callbacks: FXLifecycleCallbacks): void;
|
|
92
|
+
/**
|
|
93
|
+
* 注销生命周期回调
|
|
94
|
+
* @param callbacks 生命周期回调
|
|
95
|
+
*/
|
|
88
96
|
unregisterLifecycleCallbacks(callbacks: FXLifecycleCallbacks): void;
|
|
89
97
|
/**
|
|
90
98
|
* 获取最近使用的视图 ID(栈顶)
|
package/FXViewManager.js
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.FXViewManager = void 0;
|
|
4
7
|
const FXViewController_1 = require("./FXViewController");
|
|
5
8
|
const PriorityQueue_1 = require("./queue/PriorityQueue");
|
|
9
|
+
const FXLogger_1 = __importDefault(require("./logger/FXLogger"));
|
|
6
10
|
class FXViewManager {
|
|
7
11
|
constructor() {
|
|
8
12
|
// 存储视图控制器
|
|
@@ -27,7 +31,7 @@ class FXViewManager {
|
|
|
27
31
|
* @returns 组件控制器
|
|
28
32
|
*/
|
|
29
33
|
add(component, fxViewId, categoryId, componentId) {
|
|
30
|
-
|
|
34
|
+
FXLogger_1.default.debug("FXViewManager", "add", {
|
|
31
35
|
fxViewId,
|
|
32
36
|
categoryId,
|
|
33
37
|
componentId,
|
|
@@ -44,7 +48,7 @@ class FXViewManager {
|
|
|
44
48
|
* @returns 组件控制器
|
|
45
49
|
*/
|
|
46
50
|
build(component, fxViewId, categoryId, componentId) {
|
|
47
|
-
|
|
51
|
+
FXLogger_1.default.debug("FXViewManager", "build", {
|
|
48
52
|
fxViewId,
|
|
49
53
|
categoryId,
|
|
50
54
|
componentId,
|
|
@@ -59,14 +63,14 @@ class FXViewManager {
|
|
|
59
63
|
* @param categoryId 分类 ID(可选,默认 "default")
|
|
60
64
|
*/
|
|
61
65
|
show(componentId, fxViewId, categoryId) {
|
|
62
|
-
|
|
66
|
+
FXLogger_1.default.debug("FXViewManager", "show", {
|
|
63
67
|
fxViewId,
|
|
64
68
|
categoryId,
|
|
65
69
|
componentId,
|
|
66
70
|
});
|
|
67
71
|
const viewController = this.getViewController(fxViewId);
|
|
68
72
|
if (!viewController) {
|
|
69
|
-
|
|
73
|
+
FXLogger_1.default.warn("FXViewManager", `FXView ${fxViewId || "latest"} not found`);
|
|
70
74
|
return;
|
|
71
75
|
}
|
|
72
76
|
viewController.show(componentId, categoryId);
|
|
@@ -78,14 +82,14 @@ class FXViewManager {
|
|
|
78
82
|
* @param categoryId 分类 ID(可选,默认 "default")
|
|
79
83
|
*/
|
|
80
84
|
hide(componentId, fxViewId, categoryId) {
|
|
81
|
-
|
|
85
|
+
FXLogger_1.default.debug("FXViewManager", "hide", {
|
|
82
86
|
fxViewId,
|
|
83
87
|
categoryId,
|
|
84
88
|
componentId,
|
|
85
89
|
});
|
|
86
90
|
const viewController = this.getViewController(fxViewId);
|
|
87
91
|
if (!viewController) {
|
|
88
|
-
|
|
92
|
+
FXLogger_1.default.warn("FXViewManager", `FXView ${fxViewId || "latest"} not found`);
|
|
89
93
|
return;
|
|
90
94
|
}
|
|
91
95
|
viewController.hide(componentId, categoryId);
|
|
@@ -98,14 +102,14 @@ class FXViewManager {
|
|
|
98
102
|
* @param categoryId 分类 ID(可选,默认 "default")
|
|
99
103
|
*/
|
|
100
104
|
update(componentId, component, fxViewId, categoryId) {
|
|
101
|
-
|
|
105
|
+
FXLogger_1.default.debug("FXViewManager", "update", {
|
|
102
106
|
fxViewId,
|
|
103
107
|
categoryId,
|
|
104
108
|
componentId,
|
|
105
109
|
});
|
|
106
110
|
const viewController = this.getViewController(fxViewId);
|
|
107
111
|
if (!viewController) {
|
|
108
|
-
|
|
112
|
+
FXLogger_1.default.warn("FXViewManager", `FXView ${fxViewId || "latest"} not found`);
|
|
109
113
|
return;
|
|
110
114
|
}
|
|
111
115
|
viewController.update(componentId, component, categoryId);
|
|
@@ -117,14 +121,14 @@ class FXViewManager {
|
|
|
117
121
|
* @param categoryId 分类 ID(可选,默认 "default")
|
|
118
122
|
*/
|
|
119
123
|
remove(componentId, fxViewId, categoryId) {
|
|
120
|
-
|
|
124
|
+
FXLogger_1.default.debug("FXViewManager", "remove", {
|
|
121
125
|
fxViewId,
|
|
122
126
|
categoryId,
|
|
123
127
|
componentId,
|
|
124
128
|
});
|
|
125
129
|
const viewController = this.getViewController(fxViewId);
|
|
126
130
|
if (!viewController) {
|
|
127
|
-
|
|
131
|
+
FXLogger_1.default.warn("FXViewManager", `FXView ${fxViewId || "latest"} not found`);
|
|
128
132
|
return;
|
|
129
133
|
}
|
|
130
134
|
viewController.remove(componentId, categoryId);
|
|
@@ -135,13 +139,13 @@ class FXViewManager {
|
|
|
135
139
|
* @param categoryId 分类 ID(可选,默认 "default")
|
|
136
140
|
*/
|
|
137
141
|
removeLast(fxViewId, categoryId) {
|
|
138
|
-
|
|
142
|
+
FXLogger_1.default.debug("FXViewManager", "removeLast", {
|
|
139
143
|
fxViewId,
|
|
140
144
|
categoryId,
|
|
141
145
|
});
|
|
142
146
|
const viewController = this.getViewController(fxViewId);
|
|
143
147
|
if (!viewController) {
|
|
144
|
-
|
|
148
|
+
FXLogger_1.default.warn("FXViewManager", `FXView ${fxViewId || "latest"} not found`);
|
|
145
149
|
return;
|
|
146
150
|
}
|
|
147
151
|
viewController.removeLast(categoryId);
|
|
@@ -151,7 +155,7 @@ class FXViewManager {
|
|
|
151
155
|
* @param fxViewId 视图 ID(可选,清空所有视图)
|
|
152
156
|
*/
|
|
153
157
|
clearAll(fxViewId) {
|
|
154
|
-
|
|
158
|
+
FXLogger_1.default.debug("FXViewManager", "clearAll", { fxViewId });
|
|
155
159
|
if (fxViewId) {
|
|
156
160
|
// 清空指定视图
|
|
157
161
|
const viewController = this.getViewController(fxViewId);
|
|
@@ -172,10 +176,10 @@ class FXViewManager {
|
|
|
172
176
|
* @param fxViewId 视图 ID(可选,使用最近的视图)
|
|
173
177
|
*/
|
|
174
178
|
clearCategory(categoryId, fxViewId) {
|
|
175
|
-
|
|
179
|
+
FXLogger_1.default.debug("FXViewManager", "clearCategory", { fxViewId, categoryId });
|
|
176
180
|
const viewController = this.getViewController(fxViewId);
|
|
177
181
|
if (!viewController) {
|
|
178
|
-
|
|
182
|
+
FXLogger_1.default.warn("FXViewManager", `FXView ${fxViewId || "latest"} not found`);
|
|
179
183
|
return;
|
|
180
184
|
}
|
|
181
185
|
viewController.clearCategory(categoryId);
|
|
@@ -189,7 +193,7 @@ class FXViewManager {
|
|
|
189
193
|
* @returns 视图控制器
|
|
190
194
|
*/
|
|
191
195
|
registerView(fxViewId, updateCallback) {
|
|
192
|
-
|
|
196
|
+
FXLogger_1.default.debug("FXViewManager", "registerView", fxViewId);
|
|
193
197
|
let viewController = this.viewControllerMap.get(fxViewId);
|
|
194
198
|
if (!viewController) {
|
|
195
199
|
viewController = new FXViewController_1.FXViewController(fxViewId);
|
|
@@ -211,10 +215,10 @@ class FXViewManager {
|
|
|
211
215
|
* @returns 是否成功注销
|
|
212
216
|
*/
|
|
213
217
|
unregisterView(fxViewId) {
|
|
214
|
-
|
|
218
|
+
FXLogger_1.default.debug("FXViewManager", "unregisterView", fxViewId);
|
|
215
219
|
const viewController = this.getViewController(fxViewId);
|
|
216
220
|
if (!viewController) {
|
|
217
|
-
|
|
221
|
+
FXLogger_1.default.warn("FXViewManager", `FXView ${fxViewId} not found, cannot unregister`);
|
|
218
222
|
return false;
|
|
219
223
|
}
|
|
220
224
|
// 清空回调
|
|
@@ -231,12 +235,20 @@ class FXViewManager {
|
|
|
231
235
|
});
|
|
232
236
|
return true;
|
|
233
237
|
}
|
|
238
|
+
/**
|
|
239
|
+
* 注册生命周期回调
|
|
240
|
+
* @param callbacks 生命周期回调
|
|
241
|
+
*/
|
|
234
242
|
registerLifecycleCallbacks(callbacks) {
|
|
235
|
-
|
|
243
|
+
FXLogger_1.default.debug("FXViewManager", "registerLifecycleCallbacks");
|
|
236
244
|
this.viewLifecycleCallbacks.push(callbacks);
|
|
237
245
|
}
|
|
246
|
+
/**
|
|
247
|
+
* 注销生命周期回调
|
|
248
|
+
* @param callbacks 生命周期回调
|
|
249
|
+
*/
|
|
238
250
|
unregisterLifecycleCallbacks(callbacks) {
|
|
239
|
-
|
|
251
|
+
FXLogger_1.default.debug("FXViewManager", "unregisterLifecycleCallbacks");
|
|
240
252
|
this.viewLifecycleCallbacks = this.viewLifecycleCallbacks.filter((callback) => callback !== callbacks);
|
|
241
253
|
}
|
|
242
254
|
/**
|
|
@@ -253,15 +265,15 @@ class FXViewManager {
|
|
|
253
265
|
* @returns 组件列表
|
|
254
266
|
*/
|
|
255
267
|
getComponents(fxViewId, categoryId) {
|
|
256
|
-
|
|
268
|
+
FXLogger_1.default.debug("FXViewManager", "getComponents", { fxViewId, categoryId });
|
|
257
269
|
const finalFXViewId = fxViewId || this.getLatestFXViewId();
|
|
258
270
|
if (!finalFXViewId) {
|
|
259
|
-
|
|
271
|
+
FXLogger_1.default.warn("FXViewManager", "No FXView available");
|
|
260
272
|
return [];
|
|
261
273
|
}
|
|
262
274
|
const viewController = this.getViewController(finalFXViewId);
|
|
263
275
|
if (!viewController) {
|
|
264
|
-
|
|
276
|
+
FXLogger_1.default.warn("FXViewManager", `FXViewController ${finalFXViewId} not found`);
|
|
265
277
|
return [];
|
|
266
278
|
}
|
|
267
279
|
return viewController.getComponents(categoryId);
|
|
@@ -320,7 +332,7 @@ class FXViewManager {
|
|
|
320
332
|
getViewController(fxViewId) {
|
|
321
333
|
const finalFXViewId = fxViewId || this.getLatestFXViewId();
|
|
322
334
|
if (!finalFXViewId) {
|
|
323
|
-
|
|
335
|
+
FXLogger_1.default.warn("FXViewManager", "getViewController: no fxViewId available");
|
|
324
336
|
return null;
|
|
325
337
|
}
|
|
326
338
|
return this.viewControllerMap.get(finalFXViewId) || null;
|
|
@@ -334,7 +346,7 @@ class FXViewManager {
|
|
|
334
346
|
const finalFXViewId = fxViewId || this.getLatestFXViewId() || this.autoFXViewId();
|
|
335
347
|
let viewController = this.viewControllerMap.get(finalFXViewId);
|
|
336
348
|
if (!viewController) {
|
|
337
|
-
|
|
349
|
+
FXLogger_1.default.warn("FXViewManager", `FXViewController ${finalFXViewId} not registered, creating a temporary one`);
|
|
338
350
|
viewController = new FXViewController_1.FXViewController(finalFXViewId);
|
|
339
351
|
this.viewControllerMap.set(finalFXViewId, viewController);
|
|
340
352
|
this.fxViewIdQueue.enqueue(finalFXViewId);
|
package/FXViewManager.ts
CHANGED
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
} from "./types";
|
|
7
7
|
import { FXViewController } from "./FXViewController";
|
|
8
8
|
import { HeapType, PriorityOrder, PriorityQueue } from "./queue/PriorityQueue";
|
|
9
|
+
import logger from "./logger/FXLogger";
|
|
9
10
|
|
|
10
11
|
export class FXViewManager {
|
|
11
12
|
private static instance: FXViewManager;
|
|
@@ -41,7 +42,7 @@ export class FXViewManager {
|
|
|
41
42
|
categoryId?: string,
|
|
42
43
|
componentId?: string,
|
|
43
44
|
): FXComponentController {
|
|
44
|
-
|
|
45
|
+
logger.debug("FXViewManager", "add", {
|
|
45
46
|
fxViewId,
|
|
46
47
|
categoryId,
|
|
47
48
|
componentId,
|
|
@@ -65,7 +66,7 @@ export class FXViewManager {
|
|
|
65
66
|
categoryId?: string,
|
|
66
67
|
componentId?: string,
|
|
67
68
|
): FXComponentController {
|
|
68
|
-
|
|
69
|
+
logger.debug("FXViewManager", "build", {
|
|
69
70
|
fxViewId,
|
|
70
71
|
categoryId,
|
|
71
72
|
componentId,
|
|
@@ -82,7 +83,7 @@ export class FXViewManager {
|
|
|
82
83
|
* @param categoryId 分类 ID(可选,默认 "default")
|
|
83
84
|
*/
|
|
84
85
|
show(componentId: string, fxViewId?: string, categoryId?: string): void {
|
|
85
|
-
|
|
86
|
+
logger.debug("FXViewManager", "show", {
|
|
86
87
|
fxViewId,
|
|
87
88
|
categoryId,
|
|
88
89
|
componentId,
|
|
@@ -90,7 +91,7 @@ export class FXViewManager {
|
|
|
90
91
|
|
|
91
92
|
const viewController = this.getViewController(fxViewId);
|
|
92
93
|
if (!viewController) {
|
|
93
|
-
|
|
94
|
+
logger.warn("FXViewManager", `FXView ${fxViewId || "latest"} not found`);
|
|
94
95
|
return;
|
|
95
96
|
}
|
|
96
97
|
|
|
@@ -104,7 +105,7 @@ export class FXViewManager {
|
|
|
104
105
|
* @param categoryId 分类 ID(可选,默认 "default")
|
|
105
106
|
*/
|
|
106
107
|
hide(componentId: string, fxViewId?: string, categoryId?: string): void {
|
|
107
|
-
|
|
108
|
+
logger.debug("FXViewManager", "hide", {
|
|
108
109
|
fxViewId,
|
|
109
110
|
categoryId,
|
|
110
111
|
componentId,
|
|
@@ -112,7 +113,7 @@ export class FXViewManager {
|
|
|
112
113
|
|
|
113
114
|
const viewController = this.getViewController(fxViewId);
|
|
114
115
|
if (!viewController) {
|
|
115
|
-
|
|
116
|
+
logger.warn("FXViewManager", `FXView ${fxViewId || "latest"} not found`);
|
|
116
117
|
return;
|
|
117
118
|
}
|
|
118
119
|
|
|
@@ -132,7 +133,7 @@ export class FXViewManager {
|
|
|
132
133
|
fxViewId?: string,
|
|
133
134
|
categoryId?: string,
|
|
134
135
|
): void {
|
|
135
|
-
|
|
136
|
+
logger.debug("FXViewManager", "update", {
|
|
136
137
|
fxViewId,
|
|
137
138
|
categoryId,
|
|
138
139
|
componentId,
|
|
@@ -140,7 +141,7 @@ export class FXViewManager {
|
|
|
140
141
|
|
|
141
142
|
const viewController = this.getViewController(fxViewId);
|
|
142
143
|
if (!viewController) {
|
|
143
|
-
|
|
144
|
+
logger.warn("FXViewManager", `FXView ${fxViewId || "latest"} not found`);
|
|
144
145
|
return;
|
|
145
146
|
}
|
|
146
147
|
|
|
@@ -154,7 +155,7 @@ export class FXViewManager {
|
|
|
154
155
|
* @param categoryId 分类 ID(可选,默认 "default")
|
|
155
156
|
*/
|
|
156
157
|
remove(componentId: string, fxViewId?: string, categoryId?: string): void {
|
|
157
|
-
|
|
158
|
+
logger.debug("FXViewManager", "remove", {
|
|
158
159
|
fxViewId,
|
|
159
160
|
categoryId,
|
|
160
161
|
componentId,
|
|
@@ -162,7 +163,7 @@ export class FXViewManager {
|
|
|
162
163
|
|
|
163
164
|
const viewController = this.getViewController(fxViewId);
|
|
164
165
|
if (!viewController) {
|
|
165
|
-
|
|
166
|
+
logger.warn("FXViewManager", `FXView ${fxViewId || "latest"} not found`);
|
|
166
167
|
return;
|
|
167
168
|
}
|
|
168
169
|
|
|
@@ -175,14 +176,14 @@ export class FXViewManager {
|
|
|
175
176
|
* @param categoryId 分类 ID(可选,默认 "default")
|
|
176
177
|
*/
|
|
177
178
|
removeLast(fxViewId?: string, categoryId?: string): void {
|
|
178
|
-
|
|
179
|
+
logger.debug("FXViewManager", "removeLast", {
|
|
179
180
|
fxViewId,
|
|
180
181
|
categoryId,
|
|
181
182
|
});
|
|
182
183
|
|
|
183
184
|
const viewController = this.getViewController(fxViewId);
|
|
184
185
|
if (!viewController) {
|
|
185
|
-
|
|
186
|
+
logger.warn("FXViewManager", `FXView ${fxViewId || "latest"} not found`);
|
|
186
187
|
return;
|
|
187
188
|
}
|
|
188
189
|
|
|
@@ -194,7 +195,7 @@ export class FXViewManager {
|
|
|
194
195
|
* @param fxViewId 视图 ID(可选,清空所有视图)
|
|
195
196
|
*/
|
|
196
197
|
clearAll(fxViewId?: string): void {
|
|
197
|
-
|
|
198
|
+
logger.debug("FXViewManager", "clearAll", { fxViewId });
|
|
198
199
|
|
|
199
200
|
if (fxViewId) {
|
|
200
201
|
// 清空指定视图
|
|
@@ -216,11 +217,11 @@ export class FXViewManager {
|
|
|
216
217
|
* @param fxViewId 视图 ID(可选,使用最近的视图)
|
|
217
218
|
*/
|
|
218
219
|
clearCategory(categoryId: string, fxViewId?: string): void {
|
|
219
|
-
|
|
220
|
+
logger.debug("FXViewManager", "clearCategory", { fxViewId, categoryId });
|
|
220
221
|
|
|
221
222
|
const viewController = this.getViewController(fxViewId);
|
|
222
223
|
if (!viewController) {
|
|
223
|
-
|
|
224
|
+
logger.warn("FXViewManager", `FXView ${fxViewId || "latest"} not found`);
|
|
224
225
|
return;
|
|
225
226
|
}
|
|
226
227
|
|
|
@@ -238,7 +239,7 @@ export class FXViewManager {
|
|
|
238
239
|
* @returns 视图控制器
|
|
239
240
|
*/
|
|
240
241
|
registerView(fxViewId: string, updateCallback: () => void): FXViewController {
|
|
241
|
-
|
|
242
|
+
logger.debug("FXViewManager", "registerView", fxViewId);
|
|
242
243
|
|
|
243
244
|
let viewController = this.viewControllerMap.get(fxViewId);
|
|
244
245
|
|
|
@@ -263,11 +264,14 @@ export class FXViewManager {
|
|
|
263
264
|
* @returns 是否成功注销
|
|
264
265
|
*/
|
|
265
266
|
unregisterView(fxViewId: string): boolean {
|
|
266
|
-
|
|
267
|
+
logger.debug("FXViewManager", "unregisterView", fxViewId);
|
|
267
268
|
|
|
268
269
|
const viewController = this.getViewController(fxViewId);
|
|
269
270
|
if (!viewController) {
|
|
270
|
-
|
|
271
|
+
logger.warn(
|
|
272
|
+
"FXViewManager",
|
|
273
|
+
`FXView ${fxViewId} not found, cannot unregister`,
|
|
274
|
+
);
|
|
271
275
|
return false;
|
|
272
276
|
}
|
|
273
277
|
|
|
@@ -290,13 +294,21 @@ export class FXViewManager {
|
|
|
290
294
|
return true;
|
|
291
295
|
}
|
|
292
296
|
|
|
297
|
+
/**
|
|
298
|
+
* 注册生命周期回调
|
|
299
|
+
* @param callbacks 生命周期回调
|
|
300
|
+
*/
|
|
293
301
|
registerLifecycleCallbacks(callbacks: FXLifecycleCallbacks): void {
|
|
294
|
-
|
|
302
|
+
logger.debug("FXViewManager", "registerLifecycleCallbacks");
|
|
295
303
|
this.viewLifecycleCallbacks.push(callbacks);
|
|
296
304
|
}
|
|
297
305
|
|
|
306
|
+
/**
|
|
307
|
+
* 注销生命周期回调
|
|
308
|
+
* @param callbacks 生命周期回调
|
|
309
|
+
*/
|
|
298
310
|
unregisterLifecycleCallbacks(callbacks: FXLifecycleCallbacks): void {
|
|
299
|
-
|
|
311
|
+
logger.debug("FXViewManager", "unregisterLifecycleCallbacks");
|
|
300
312
|
this.viewLifecycleCallbacks = this.viewLifecycleCallbacks.filter(
|
|
301
313
|
(callback) => callback !== callbacks,
|
|
302
314
|
);
|
|
@@ -317,17 +329,20 @@ export class FXViewManager {
|
|
|
317
329
|
* @returns 组件列表
|
|
318
330
|
*/
|
|
319
331
|
getComponents(fxViewId?: string, categoryId?: string): FXComponentItem[] {
|
|
320
|
-
|
|
332
|
+
logger.debug("FXViewManager", "getComponents", { fxViewId, categoryId });
|
|
321
333
|
|
|
322
334
|
const finalFXViewId = fxViewId || this.getLatestFXViewId();
|
|
323
335
|
if (!finalFXViewId) {
|
|
324
|
-
|
|
336
|
+
logger.warn("FXViewManager", "No FXView available");
|
|
325
337
|
return [];
|
|
326
338
|
}
|
|
327
339
|
|
|
328
340
|
const viewController = this.getViewController(finalFXViewId);
|
|
329
341
|
if (!viewController) {
|
|
330
|
-
|
|
342
|
+
logger.warn(
|
|
343
|
+
"FXViewManager",
|
|
344
|
+
`FXViewController ${finalFXViewId} not found`,
|
|
345
|
+
);
|
|
331
346
|
return [];
|
|
332
347
|
}
|
|
333
348
|
|
|
@@ -398,7 +413,7 @@ export class FXViewManager {
|
|
|
398
413
|
private getViewController(fxViewId?: string): FXViewController | null {
|
|
399
414
|
const finalFXViewId = fxViewId || this.getLatestFXViewId();
|
|
400
415
|
if (!finalFXViewId) {
|
|
401
|
-
|
|
416
|
+
logger.warn("FXViewManager", "getViewController: no fxViewId available");
|
|
402
417
|
return null;
|
|
403
418
|
}
|
|
404
419
|
return this.viewControllerMap.get(finalFXViewId) || null;
|
|
@@ -416,7 +431,8 @@ export class FXViewManager {
|
|
|
416
431
|
let viewController = this.viewControllerMap.get(finalFXViewId);
|
|
417
432
|
|
|
418
433
|
if (!viewController) {
|
|
419
|
-
|
|
434
|
+
logger.warn(
|
|
435
|
+
"FXViewManager",
|
|
420
436
|
`FXViewController ${finalFXViewId} not registered, creating a temporary one`,
|
|
421
437
|
);
|
|
422
438
|
viewController = new FXViewController(finalFXViewId);
|
package/index.d.ts
CHANGED
package/index.js
CHANGED
|
@@ -17,11 +17,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
17
17
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.
|
|
20
|
+
exports.logger = exports.FXManager = exports.FXView = void 0;
|
|
21
21
|
// 主入口文件
|
|
22
22
|
var FXView_1 = require("./FXView");
|
|
23
23
|
Object.defineProperty(exports, "FXView", { enumerable: true, get: function () { return __importDefault(FXView_1).default; } });
|
|
24
24
|
var FXViewManager_1 = require("./FXViewManager");
|
|
25
|
-
Object.defineProperty(exports, "FXViewManager", { enumerable: true, get: function () { return FXViewManager_1.FXViewManager; } });
|
|
26
25
|
Object.defineProperty(exports, "FXManager", { enumerable: true, get: function () { return __importDefault(FXViewManager_1).default; } });
|
|
26
|
+
var FXLogger_1 = require("./logger/FXLogger");
|
|
27
|
+
Object.defineProperty(exports, "logger", { enumerable: true, get: function () { return __importDefault(FXLogger_1).default; } });
|
|
27
28
|
__exportStar(require("./types"), exports);
|
package/index.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
// 主入口文件
|
|
2
2
|
export { default as FXView } from "./FXView";
|
|
3
|
-
export {
|
|
3
|
+
export { default as FXManager } from "./FXViewManager";
|
|
4
|
+
export { default as logger } from "./logger/FXLogger";
|
|
4
5
|
export * from "./types";
|