mirror of
https://github.com/zhayujie/chatgpt-on-wechat.git
synced 2026-06-02 00:57:41 +08:00
Merge branch 'master' of github.com:zhayujie/chatgpt-on-wechat
This commit is contained in:
@@ -213,6 +213,9 @@
|
|||||||
<div id="session-list" class="session-list"></div>
|
<div id="session-list" class="session-list"></div>
|
||||||
</aside>
|
</aside>
|
||||||
|
|
||||||
|
<!-- Mobile overlay for session panel (click to close) -->
|
||||||
|
<div id="session-panel-overlay" class="session-panel-overlay hidden" onclick="closeSessionPanel()"></div>
|
||||||
|
|
||||||
<!-- ================================================================ -->
|
<!-- ================================================================ -->
|
||||||
<!-- MAIN CONTENT -->
|
<!-- MAIN CONTENT -->
|
||||||
<!-- ================================================================ -->
|
<!-- ================================================================ -->
|
||||||
|
|||||||
@@ -339,6 +339,23 @@
|
|||||||
}
|
}
|
||||||
.confirm-btn-ok:hover { background: #dc2626; }
|
.confirm-btn-ok:hover { background: #dc2626; }
|
||||||
|
|
||||||
|
/* Session panel overlay (mobile only, click to close) */
|
||||||
|
.session-panel-overlay {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
.session-panel-overlay {
|
||||||
|
display: block;
|
||||||
|
position: fixed;
|
||||||
|
inset: 0;
|
||||||
|
z-index: 44;
|
||||||
|
background: rgba(0, 0, 0, 0.3);
|
||||||
|
}
|
||||||
|
.session-panel-overlay.hidden {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Mobile: session panel as overlay */
|
/* Mobile: session panel as overlay */
|
||||||
@media (max-width: 768px) {
|
@media (max-width: 768px) {
|
||||||
.session-panel {
|
.session-panel {
|
||||||
|
|||||||
@@ -1626,6 +1626,7 @@ function newChat() {
|
|||||||
if (panel && !sessionPanelOpen) {
|
if (panel && !sessionPanelOpen) {
|
||||||
sessionPanelOpen = true;
|
sessionPanelOpen = true;
|
||||||
panel.classList.remove('hidden');
|
panel.classList.remove('hidden');
|
||||||
|
_showSessionOverlay();
|
||||||
_persistPanelState();
|
_persistPanelState();
|
||||||
}
|
}
|
||||||
const newSid = sessionId;
|
const newSid = sessionId;
|
||||||
@@ -1643,11 +1644,40 @@ function _persistPanelState() {
|
|||||||
localStorage.setItem(SESSION_PANEL_KEY, sessionPanelOpen ? '1' : '0');
|
localStorage.setItem(SESSION_PANEL_KEY, sessionPanelOpen ? '1' : '0');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function _isMobileView() {
|
||||||
|
return window.innerWidth <= 768;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _showSessionOverlay() {
|
||||||
|
if (!_isMobileView()) return;
|
||||||
|
const overlay = document.getElementById('session-panel-overlay');
|
||||||
|
if (overlay) overlay.classList.remove('hidden');
|
||||||
|
}
|
||||||
|
|
||||||
|
function _hideSessionOverlay() {
|
||||||
|
const overlay = document.getElementById('session-panel-overlay');
|
||||||
|
if (overlay) overlay.classList.add('hidden');
|
||||||
|
}
|
||||||
|
|
||||||
|
function closeSessionPanel() {
|
||||||
|
const panel = document.getElementById('session-panel');
|
||||||
|
if (!panel || !sessionPanelOpen) return;
|
||||||
|
sessionPanelOpen = false;
|
||||||
|
panel.classList.add('hidden');
|
||||||
|
_hideSessionOverlay();
|
||||||
|
_persistPanelState();
|
||||||
|
}
|
||||||
|
|
||||||
function toggleSessionPanel() {
|
function toggleSessionPanel() {
|
||||||
const panel = document.getElementById('session-panel');
|
const panel = document.getElementById('session-panel');
|
||||||
if (!panel) return;
|
if (!panel) return;
|
||||||
sessionPanelOpen = !sessionPanelOpen;
|
sessionPanelOpen = !sessionPanelOpen;
|
||||||
panel.classList.toggle('hidden', !sessionPanelOpen);
|
panel.classList.toggle('hidden', !sessionPanelOpen);
|
||||||
|
if (sessionPanelOpen) {
|
||||||
|
_showSessionOverlay();
|
||||||
|
} else {
|
||||||
|
_hideSessionOverlay();
|
||||||
|
}
|
||||||
_persistPanelState();
|
_persistPanelState();
|
||||||
if (sessionPanelOpen) loadSessionList();
|
if (sessionPanelOpen) loadSessionList();
|
||||||
}
|
}
|
||||||
@@ -1657,6 +1687,7 @@ function openSessionPanel() {
|
|||||||
if (!panel || sessionPanelOpen) return;
|
if (!panel || sessionPanelOpen) return;
|
||||||
sessionPanelOpen = true;
|
sessionPanelOpen = true;
|
||||||
panel.classList.remove('hidden');
|
panel.classList.remove('hidden');
|
||||||
|
_showSessionOverlay();
|
||||||
_persistPanelState();
|
_persistPanelState();
|
||||||
loadSessionList();
|
loadSessionList();
|
||||||
}
|
}
|
||||||
@@ -1664,11 +1695,13 @@ function openSessionPanel() {
|
|||||||
function _restoreSessionPanel() {
|
function _restoreSessionPanel() {
|
||||||
const panel = document.getElementById('session-panel');
|
const panel = document.getElementById('session-panel');
|
||||||
if (!panel) return;
|
if (!panel) return;
|
||||||
if (sessionPanelOpen) {
|
if (sessionPanelOpen && !_isMobileView()) {
|
||||||
panel.classList.remove('hidden');
|
panel.classList.remove('hidden');
|
||||||
|
_showSessionOverlay();
|
||||||
loadSessionList();
|
loadSessionList();
|
||||||
} else {
|
} else {
|
||||||
panel.classList.add('hidden');
|
panel.classList.add('hidden');
|
||||||
|
_hideSessionOverlay();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1860,6 +1893,7 @@ function switchSession(newSessionId) {
|
|||||||
el.classList.toggle('active', el.dataset.sessionId === sessionId);
|
el.classList.toggle('active', el.dataset.sessionId === sessionId);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (_isMobileView()) closeSessionPanel();
|
||||||
if (currentView !== 'chat') navigateTo('chat');
|
if (currentView !== 'chat') navigateTo('chat');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user