MCPcopy
hub / github.com/Alanrk/LazyCat-Bookmark-Cleaner / showNicknameModal

Function showNicknameModal

bookmarkProfile.js:49–131  ·  view source on GitHub ↗
(isFirstTime = true)

Source from the content-addressed store, hash-verified

47
48// 修改显示昵称输入对话框函数
49function showNicknameModal(isFirstTime = true) { // 添加参数标识是否首次设置
50 const modalOverlay = document.querySelector('.modal-overlay');
51 const nicknameInput = modalOverlay.querySelector('.nickname-input');
52 const confirmButton = modalOverlay.querySelector('.confirm');
53 const cancelButton = modalOverlay.querySelector('.cancel');
54 const modalTitle = modalOverlay.querySelector('.modal-title');
55
56 // 根据是否首次设置显示不同的标题
57 if (modalTitle) {
58 modalTitle.textContent = getMessage(isFirstTime ? 'shareModalTitle' : 'editNicknameTitle');
59 }
60
61 // 显示模态框
62 modalOverlay.style.display = 'flex';
63
64 // 如果是编辑模式,填入当前昵称
65 if (!isFirstTime) {
66 getNickname().then(currentNickname => {
67 if (nicknameInput && currentNickname) {
68 nicknameInput.value = currentNickname;
69 // 选中文本以方便修改
70 nicknameInput.select();
71 }
72 });
73 }
74
75 // 根据是否首次设置来显示/隐藏取消按钮
76 if (cancelButton) {
77 cancelButton.style.display = isFirstTime ? 'none' : 'block';
78 }
79
80 // 取消按钮处理
81 const handleCancel = () => {
82 modalOverlay.style.display = 'none';
83 nicknameInput.value = '';
84 };
85
86 // 确认按钮处理
87 const handleConfirm = async () => {
88 const nickname = nicknameInput.value.trim();
89 if (!nickname) {
90 alert(getMessage('pleaseEnterNickname'));
91 return;
92 }
93
94 try {
95 // 保存昵称
96 await setNickname(nickname);
97 // 更新标题
98 updateProfileTitle(nickname);
99 if (isFirstTime) {
100 await initBookmarkProfile();
101 }
102 modalOverlay.style.display = 'none';
103 } catch (error) {
104 console.error('Error saving nickname:', error);
105 alert(getMessage('nicknameError'));
106 }

Callers 3

bookmarkProfile.jsFile · 0.85
addEditNicknameFeatureFunction · 0.85
updateProfileTitleFunction · 0.85

Calls 3

getNicknameFunction · 0.85
getMessageFunction · 0.70
handleCancelFunction · 0.70

Tested by

no test coverage detected