(isFirstTime = true)
| 47 | |
| 48 | // 修改显示昵称输入对话框函数 |
| 49 | function 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 | } |
no test coverage detected