dsh-token-gauge 0.1.3 → 0.1.4
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/lib/client.mjs +25 -11
- package/package.json +1 -1
- package/src/client.ts +32 -10
package/lib/client.mjs
CHANGED
|
@@ -32,7 +32,6 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
32
32
|
var client_exports = {};
|
|
33
33
|
__export(client_exports, {
|
|
34
34
|
apply: () => apply,
|
|
35
|
-
inject: () => inject,
|
|
36
35
|
name: () => name
|
|
37
36
|
});
|
|
38
37
|
module.exports = __toCommonJS(client_exports);
|
|
@@ -948,17 +947,32 @@ function GaugeTab() {
|
|
|
948
947
|
return import_react.default.createElement("div", { ref: gaugeRef, className: "tg-tab-root" });
|
|
949
948
|
}
|
|
950
949
|
var name = PLUGIN_ID;
|
|
951
|
-
var inject = ["betterSidebar"];
|
|
952
950
|
function apply(ctx) {
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
951
|
+
let disposed = false;
|
|
952
|
+
const getSidebar = () => (typeof ctx.get === "function" ? ctx.get("betterSidebar") : void 0) || ctx.betterSidebar;
|
|
953
|
+
const tryRegister = () => {
|
|
954
|
+
if (disposed) return true;
|
|
955
|
+
const sidebar = getSidebar();
|
|
956
|
+
if (!sidebar || typeof sidebar.registerTab !== "function") return false;
|
|
957
|
+
sidebar.registerTab({
|
|
958
|
+
id: PLUGIN_ID,
|
|
959
|
+
title: "Token \u4EEA\u8868\u76D8",
|
|
960
|
+
single: true,
|
|
961
|
+
component: GaugeTab
|
|
962
|
+
});
|
|
963
|
+
return true;
|
|
964
|
+
};
|
|
965
|
+
if (!tryRegister()) {
|
|
966
|
+
const timer = setInterval(() => {
|
|
967
|
+
if (tryRegister()) clearInterval(timer);
|
|
968
|
+
}, 200);
|
|
969
|
+
setTimeout(() => clearInterval(timer), 15e3);
|
|
970
|
+
if (typeof ctx.on === "function") {
|
|
971
|
+
ctx.on("dispose", () => {
|
|
972
|
+
disposed = true;
|
|
973
|
+
clearInterval(timer);
|
|
974
|
+
});
|
|
975
|
+
}
|
|
956
976
|
}
|
|
957
|
-
ctx.betterSidebar.registerTab({
|
|
958
|
-
id: PLUGIN_ID,
|
|
959
|
-
title: "Token \u4EEA\u8868\u76D8",
|
|
960
|
-
single: true,
|
|
961
|
-
component: GaugeTab
|
|
962
|
-
});
|
|
963
977
|
}
|
|
964
978
|
; return module.exports; } });
|
package/package.json
CHANGED
package/src/client.ts
CHANGED
|
@@ -204,16 +204,38 @@ function GaugeTab(): React.ReactElement {
|
|
|
204
204
|
}
|
|
205
205
|
|
|
206
206
|
export const name = PLUGIN_ID
|
|
207
|
-
|
|
207
|
+
// 注意:不要声明 `inject: ['betterSidebar']`。
|
|
208
|
+
// 在本机这个 DSH cordis 启动里,兄弟 bundle 通过 ctx.provide 提供的服务在单趟
|
|
209
|
+
// boot 的激活检查点(assertEntriesActivated)之前不会被注入,导致插件被永久 defer
|
|
210
|
+
// 在 pending("waiting for service: betterSidebar")。改为在 apply 内直接
|
|
211
|
+
// ctx.get('betterSidebar') 取服务——bundles 顺序保证 better-sidebar 在本插件之前
|
|
212
|
+
// apply,服务此时已在全局注册表中。再加短轮询兜底防顺序抖动。
|
|
208
213
|
export function apply(ctx: any): void {
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
214
|
+
let disposed = false
|
|
215
|
+
const getSidebar = () =>
|
|
216
|
+
(typeof ctx.get === 'function' ? ctx.get('betterSidebar') : void 0) || ctx.betterSidebar
|
|
217
|
+
const tryRegister = (): boolean => {
|
|
218
|
+
if (disposed) return true
|
|
219
|
+
const sidebar = getSidebar()
|
|
220
|
+
if (!sidebar || typeof sidebar.registerTab !== 'function') return false
|
|
221
|
+
sidebar.registerTab({
|
|
222
|
+
id: PLUGIN_ID,
|
|
223
|
+
title: 'Token 仪表盘',
|
|
224
|
+
single: true,
|
|
225
|
+
component: GaugeTab,
|
|
226
|
+
})
|
|
227
|
+
return true
|
|
228
|
+
}
|
|
229
|
+
if (!tryRegister()) {
|
|
230
|
+
const timer = setInterval(() => {
|
|
231
|
+
if (tryRegister()) clearInterval(timer)
|
|
232
|
+
}, 200)
|
|
233
|
+
setTimeout(() => clearInterval(timer), 15000)
|
|
234
|
+
if (typeof ctx.on === 'function') {
|
|
235
|
+
ctx.on('dispose', () => {
|
|
236
|
+
disposed = true
|
|
237
|
+
clearInterval(timer)
|
|
238
|
+
})
|
|
239
|
+
}
|
|
212
240
|
}
|
|
213
|
-
ctx.betterSidebar.registerTab({
|
|
214
|
-
id: PLUGIN_ID,
|
|
215
|
-
title: 'Token 仪表盘',
|
|
216
|
-
single: true,
|
|
217
|
-
component: GaugeTab,
|
|
218
|
-
})
|
|
219
241
|
}
|