mirror of
https://github.com/Youzini-afk/ST-Bionic-Memory-Ecology.git
synced 2026-05-15 22:30:38 +08:00
fix: 面板模块改为动态 import 防止加载失败
- panel.js/themes.js 从顶层静态 import 改为 try-catch 动态 import() - 面板加载失败时核心功能不受影响 - 添加移动端图谱预览 canvas + REALTIME 标签 - 修复移动端 CSS (sidebar 全宽显示)
This commit is contained in:
37
index.js
37
index.js
@@ -31,8 +31,10 @@ import {
|
||||
import { estimateTokens, formatInjection } from "./injector.js";
|
||||
import { retrieve } from "./retriever.js";
|
||||
import { DEFAULT_NODE_SCHEMA, validateSchema } from "./schema.js";
|
||||
import { initPanel, openPanel, updatePanelTheme } from "./panel.js";
|
||||
import { applyTheme } from "./themes.js";
|
||||
|
||||
// 操控面板模块(动态加载,防止加载失败崩溃整个扩展)
|
||||
let _panelModule = null;
|
||||
let _themesModule = null;
|
||||
|
||||
const MODULE_NAME = "st_bme";
|
||||
const GRAPH_METADATA_KEY = "st_bme_graph";
|
||||
@@ -960,12 +962,17 @@ function bindSettingsUI() {
|
||||
|
||||
// ==================== 操控面板初始化 ====================
|
||||
|
||||
try {
|
||||
// 动态加载面板模块
|
||||
_panelModule = await import('./panel.js');
|
||||
_themesModule = await import('./themes.js');
|
||||
|
||||
// 应用主题
|
||||
const settings = getSettings();
|
||||
applyTheme(settings.panelTheme || 'crimson');
|
||||
_themesModule.applyTheme(settings.panelTheme || 'crimson');
|
||||
|
||||
// 初始化操控面板
|
||||
await initPanel({
|
||||
await _panelModule.initPanel({
|
||||
getGraph: () => currentGraph,
|
||||
getSettings: () => getSettings(),
|
||||
getLastExtract: () => lastExtractedItems,
|
||||
@@ -1036,25 +1043,31 @@ function bindSettingsUI() {
|
||||
.append('<i class="fa-solid fa-brain"></i>')
|
||||
.append('<span>记忆图谱</span>')
|
||||
.on('click', () => {
|
||||
openPanel();
|
||||
_panelModule?.openPanel();
|
||||
$('#options').hide();
|
||||
});
|
||||
$('#extensionsMenu .list-group').append($menuItem);
|
||||
|
||||
// 主题选择绑定(如果设置面板里有)
|
||||
// 主题选择绑定
|
||||
$('#st_bme_panel_theme')
|
||||
.val(settings.panelTheme || 'crimson')
|
||||
.on('change', function () {
|
||||
const theme = $(this).val();
|
||||
settings.panelTheme = theme;
|
||||
const s = getSettings();
|
||||
s.panelTheme = theme;
|
||||
extension_settings[MODULE_NAME].panelTheme = theme;
|
||||
applyTheme(theme);
|
||||
updatePanelTheme(theme);
|
||||
_themesModule?.applyTheme(theme);
|
||||
_panelModule?.updatePanelTheme(theme);
|
||||
saveSettingsDebounced();
|
||||
});
|
||||
|
||||
// 设置面板中的"打开操控面板"按钮
|
||||
$('#st_bme_btn_open_panel').on('click', () => openPanel());
|
||||
// 打开面板按钮
|
||||
$('#st_bme_btn_open_panel').on('click', () => _panelModule?.openPanel());
|
||||
|
||||
console.log("[ST-BME] 初始化完成(含操控面板)");
|
||||
console.log("[ST-BME] 操控面板初始化完成");
|
||||
} catch (panelError) {
|
||||
console.error("[ST-BME] 操控面板加载失败(核心功能不受影响):", panelError);
|
||||
}
|
||||
|
||||
console.log("[ST-BME] 初始化完成");
|
||||
})();
|
||||
|
||||
Reference in New Issue
Block a user