dsh-folia 2.4.1 → 2.4.2
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.js +29 -10
- package/package.json +1 -1
package/lib/client.js
CHANGED
|
@@ -16244,10 +16244,15 @@ window.__ModuleLoader__.load({
|
|
|
16244
16244
|
setLoading(true);
|
|
16245
16245
|
setError(null);
|
|
16246
16246
|
try {
|
|
16247
|
-
|
|
16247
|
+
// ⚠️ `apiJson` 返回的是 **`{ ok, status, data, error }` 包装对象**,不是响应体本身
|
|
16248
|
+
//(见 src/api-client.js 的 apiFetch)。最初按裸体取值 ⇒ `list=[] 且 error=null`,
|
|
16249
|
+
// 界面显示"没有匹配的皮肤包"却没有任何错误提示 —— 静默空列表比报错难查得多。
|
|
16250
|
+
// `parse: "always"` 让非 2xx 的 `{error}` 也能被读到。
|
|
16251
|
+
const resp = await apiJson("/skins" + (force ? "?refresh=1" : ""), { parse: "always" });
|
|
16252
|
+
const r = (resp && resp.data) || null;
|
|
16248
16253
|
setList((r && r.skins) || []);
|
|
16249
16254
|
setActive((r && r.active) || null);
|
|
16250
|
-
setError((r && r.error) || null);
|
|
16255
|
+
setError((r && r.error) || (resp && resp.error) || null);
|
|
16251
16256
|
setHarnessFound(!r || r.harnessFound !== false);
|
|
16252
16257
|
} catch (e) {
|
|
16253
16258
|
setError("network");
|
|
@@ -16264,8 +16269,10 @@ window.__ModuleLoader__.load({
|
|
|
16264
16269
|
setBusy(id);
|
|
16265
16270
|
setNote(null);
|
|
16266
16271
|
try {
|
|
16267
|
-
|
|
16268
|
-
|
|
16272
|
+
// 同样是包装对象:`ok` 是 HTTP 2xx,业务结论在 `data.ok`(宿主回 `{ok:false,error}`)。
|
|
16273
|
+
const resp = await apiPostJson("/skins/" + kind, { id }, { parse: "always" });
|
|
16274
|
+
const r = (resp && resp.data) || null;
|
|
16275
|
+
if (resp && resp.ok && r && r.ok) {
|
|
16269
16276
|
if (kind === "install") {
|
|
16270
16277
|
setNote({ kind: "ok", text: weT("已安装:") + label });
|
|
16271
16278
|
await load(true);
|
|
@@ -17332,6 +17339,9 @@ window.__ModuleLoader__.load({
|
|
|
17332
17339
|
// 两页,外加壁纸页。
|
|
17333
17340
|
const QP_TABS = [
|
|
17334
17341
|
{ id: "wallpaper", get label() { return weT("壁纸"); } },
|
|
17342
|
+
// 「皮肤包」与设置页那个页签是**同一个组件**(SkinsTabPanel):首页这里只是把它挂进抽屉,
|
|
17343
|
+
// 不另写一份列表逻辑 —— 两份实现迟早会漂移。
|
|
17344
|
+
{ id: "skins", get label() { return weT("皮肤包"); } },
|
|
17335
17345
|
{ id: "appearance", get label() { return weT("外观"); } },
|
|
17336
17346
|
{ id: "playback", get label() { return weT("播放"); } },
|
|
17337
17347
|
];
|
|
@@ -17977,11 +17987,17 @@ window.__ModuleLoader__.load({
|
|
|
17977
17987
|
target: "playback",
|
|
17978
17988
|
title: weT("在设置页打开「播放」页签 —— 出图来源 / 实时帧 / 帧率上限在那里"),
|
|
17979
17989
|
}
|
|
17980
|
-
:
|
|
17981
|
-
|
|
17982
|
-
|
|
17983
|
-
|
|
17984
|
-
|
|
17990
|
+
: qpTab === "skins"
|
|
17991
|
+
? {
|
|
17992
|
+
label: weT("皮肤包设置 ›"),
|
|
17993
|
+
target: "skins",
|
|
17994
|
+
title: weT("在设置页打开「皮肤包」页签 —— 下载 / 切换 / 删除皮肤包"),
|
|
17995
|
+
}
|
|
17996
|
+
: {
|
|
17997
|
+
label: weT("壁纸引擎设置 ›"),
|
|
17998
|
+
target: "",
|
|
17999
|
+
title: weT("打开设置对话框的「壁纸引擎」分区(外观 / 播放 / 系统与全部配置)"),
|
|
18000
|
+
};
|
|
17985
18001
|
|
|
17986
18002
|
return React.createElement("div", { className: "we-qp we-qp--" + dock },
|
|
17987
18003
|
qpRenderCurrent(sel, current, playbackLive),
|
|
@@ -18011,7 +18027,10 @@ window.__ModuleLoader__.load({
|
|
|
18011
18027
|
})
|
|
18012
18028
|
: qpTab === "playback"
|
|
18013
18029
|
? qpRenderPlaybackPane(sel, switchQpTab)
|
|
18014
|
-
|
|
18030
|
+
// 皮肤包:直接挂设置页那个同一个组件(它自己管列表/下载/激活状态)。
|
|
18031
|
+
: qpTab === "skins"
|
|
18032
|
+
? React.createElement(SkinsTabPanel, null)
|
|
18033
|
+
: null),
|
|
18015
18034
|
!(qpTab === "wallpaper" && userPropsPanelOpen() && propsAvailable) && qpTab === "wallpaper" && React.createElement(React.Fragment, null,
|
|
18016
18035
|
// ── 壁纸列表(搜索 + 视图切换 + 快切)──
|
|
18017
18036
|
// 库还没回来 / 扫描失败:**只有这一页**给一句话 —— 外观 / 播放两页不依赖库,
|