MCPcopy
hub / github.com/ys1231/MoveCertificate / createModal

Function createModal

webdev/src/modal.ts:40–118  ·  view source on GitHub ↗
(modalId: string)

Source from the content-addressed store, hash-verified

38 * modal.show('证书文件名');
39 */
40export function createModal(modalId: string): ModalController {
41 // 找到页面上的模态框元素
42 const modal = document.getElementById(modalId);
43 if (!modal) {
44 console.error('找不到模态框元素:', modalId);
45 // 返回空函数,避免后续调用报错
46 return {
47 show: () => {},
48 hide: () => {},
49 onConfirm: () => {},
50 };
51 }
52
53 // TypeScript 窄化:此时 modal 一定非 null
54 const modalEl = modal;
55
56 const confirmMessage = document.getElementById('confirmMessage');
57 const confirmDeleteButton = document.getElementById('confirmDelete');
58 const cancelDeleteButton = document.getElementById('cancelDelete');
59
60 // 内部状态:当前要删除的文件名和确认后的回调函数
61 let currentFileName: string | null = null;
62 let confirmCallback: ConfirmCallback | null = null;
63
64 /**
65 * 显示模态框
66 */
67 function show(fileName: string): void {
68 currentFileName = fileName;
69 modalEl.style.display = 'block';
70 if (confirmMessage) {
71 confirmMessage.textContent = t('confirmDeleteCert', fileName);
72 }
73 }
74
75 /**
76 * 隐藏模态框
77 */
78 function hide(): void {
79 modalEl.style.display = 'none';
80 currentFileName = null;
81 }
82
83 /**
84 * 注册确认后的回调函数
85 */
86 function onConfirm(callback: ConfirmCallback): void {
87 confirmCallback = callback;
88 }
89
90 // 绑定确认按钮的点击事件
91 if (confirmDeleteButton) {
92 confirmDeleteButton.onclick = () => {
93 // 只有当前有目标文件且注册了回调时才执行
94 if (currentFileName && confirmCallback) {
95 confirmCallback(currentFileName);
96 }
97 hide();

Callers 1

loadCertsTabFunction · 0.85

Calls 1

hideFunction · 0.85

Tested by

no test coverage detected