fix: show assistant member gate in place

This commit is contained in:
leefer
2026-07-23 09:01:19 +08:00
parent d22a0f62a1
commit 6350dd3b11
5 changed files with 68 additions and 45 deletions
+19 -13
View File
@@ -4510,13 +4510,14 @@ function renderAlerts() {
}
async function openReviewAssistant() {
if (!hasMemberAccess()) {
openSettings("membership", "复盘助手仅对会员开放");
return;
}
toggleHeaderCommandMenu(false);
toggleAccountDropdown(false);
if (!elements.assistantDialog.open) elements.assistantDialog.showModal();
updateAssistantControls();
if (!hasMemberAccess()) {
document.querySelector("#closeAssistantDialog").focus();
return;
}
try {
const payload = await apiRequest("/api/assistant/messages");
state.assistantMessages = payload.items || [];
@@ -4648,10 +4649,17 @@ function renderAssistantMessages() {
}
function updateAssistantControls() {
document.querySelector("#assistantQuestion").disabled = state.assistantLoading;
document.querySelector("#sendAssistant").disabled = state.assistantLoading;
document.querySelector("#stopAssistant").hidden = !state.assistantLoading;
document.querySelector("#clearAssistantMessages").disabled = state.assistantLoading || !state.assistantMessages.length;
const unlocked = hasMemberAccess();
elements.assistantDialog.classList.toggle("member-locked", !unlocked);
document.querySelector("#assistantMemberGate").hidden = unlocked;
document.querySelector("#assistantMemberContent").setAttribute("aria-disabled", String(!unlocked));
document.querySelector("#assistantQuestion").disabled = !unlocked || state.assistantLoading;
document.querySelector("#sendAssistant").disabled = !unlocked || state.assistantLoading;
document.querySelector("#stopAssistant").hidden = !unlocked || !state.assistantLoading;
document.querySelector("#clearAssistantMessages").disabled = !unlocked || state.assistantLoading || !state.assistantMessages.length;
document.querySelectorAll("[data-assistant-prompt]").forEach((button) => {
button.disabled = !unlocked || state.assistantLoading;
});
}
function openGlobalSearch() {
@@ -5028,6 +5036,7 @@ function applyMembershipAccess() {
const assistantButton = document.querySelector("#assistantButton");
assistantButton.classList.toggle("member-locked-control", !unlocked);
assistantButton.title = unlocked ? "复盘助手" : "复盘助手(会员可用)";
updateAssistantControls();
}
function openView(viewId, updateHash = true) {
@@ -5188,13 +5197,10 @@ function selectAccountPanel(panel) {
return selected;
}
async function openSettings(panel = "profile", accessNotice = "") {
const selectedPanel = selectAccountPanel(panel);
async function openSettings(panel = "profile") {
selectAccountPanel(panel);
toggleAccountDropdown(false);
toggleHeaderCommandMenu(false);
const membershipNotice = document.querySelector("#membershipAccessNotice");
membershipNotice.textContent = accessNotice;
membershipNotice.hidden = selectedPanel !== "membership" || !accessNotice;
const status = document.querySelector("#connectionStatus");
status.className = "connection-status";
status.textContent = "正在读取账号状态";