feat: TypeScript + Electron v2 重构 - 纯桌面版
- 全面迁移到 TypeScript,严格类型定义 - 放弃 Web 版,专注 Electron 桌面应用 - 主进程模块化:main.ts, preload.ts, menu.ts, tray.ts, ipc.ts, utils.ts - 渲染进程完整迁移所有功能组件 - 删除 PWA 相关文件 (sw.js, manifest.json) - 删除 Web 版降级逻辑 - 保留所有核心功能:流式对话、多模型、Think推理、多模态、RAG知识库、Agent预设、历史管理 - 保留 Windows 11 Fluent Design 暗色主题样式
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
/**
|
||||
* Lightbox - 图片预览组件
|
||||
*/
|
||||
|
||||
let lightboxEl: HTMLElement, lightboxImg: HTMLImageElement;
|
||||
|
||||
export function initLightbox(): void {
|
||||
lightboxEl = document.querySelector('#lightbox')!;
|
||||
lightboxImg = document.querySelector('#lightboxImg')!;
|
||||
|
||||
lightboxEl.addEventListener('click', (e) => {
|
||||
if (e.target === lightboxEl) closeLightbox();
|
||||
});
|
||||
document.querySelector('#lightboxClose')!.addEventListener('click', closeLightbox);
|
||||
|
||||
document.querySelector('#messagesContainer')?.addEventListener('click', (e) => {
|
||||
const target = e.target as HTMLElement;
|
||||
if ((target as HTMLImageElement).dataset.lightbox === 'true') {
|
||||
openLightbox((target as HTMLImageElement).src);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
export function openLightbox(src: string): void {
|
||||
lightboxImg.src = src;
|
||||
lightboxEl.style.display = '';
|
||||
}
|
||||
|
||||
export function closeLightbox(): void {
|
||||
lightboxEl.style.display = 'none';
|
||||
lightboxImg.src = '';
|
||||
}
|
||||
Reference in New Issue
Block a user