fix: show assistant member gate in place
This commit is contained in:
+19
-13
@@ -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 = "正在读取账号状态";
|
||||
|
||||
Reference in New Issue
Block a user