Fix: friends.js Auth-Guards für nicht eingeloggte User
This commit is contained in:
parent
44fcb9bc16
commit
21e50c6c7b
4 changed files with 22 additions and 8 deletions
|
|
@ -3,7 +3,7 @@
|
|||
Router, State-Management, Navigation, Initialisierung.
|
||||
============================================================ */
|
||||
|
||||
const APP_VER = '80'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen
|
||||
const APP_VER = '81'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen
|
||||
|
||||
const App = (() => {
|
||||
|
||||
|
|
|
|||
|
|
@ -22,6 +22,16 @@ window.Page_friends = (() => {
|
|||
// HAUPT-RENDER
|
||||
// ----------------------------------------------------------
|
||||
function _render(prefill = null) {
|
||||
if (!_appState.user) {
|
||||
_container.innerHTML = UI.emptyState({
|
||||
icon: UI.icon('users'),
|
||||
title: 'Anmelden erforderlich',
|
||||
text: 'Melde dich an, um Freunde zu finden und Anfragen zu verwalten.',
|
||||
action: `<button class="btn btn-primary" onclick="App.navigate('settings')">Anmelden</button>`,
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
const myName = _appState?.user?.name || '';
|
||||
const myLink = `${location.origin}/#friends?suche=${encodeURIComponent(myName)}`;
|
||||
|
||||
|
|
@ -147,13 +157,14 @@ window.Page_friends = (() => {
|
|||
// DATEN LADEN
|
||||
// ----------------------------------------------------------
|
||||
async function _loadFriends() {
|
||||
if (!_appState.user) return;
|
||||
try {
|
||||
const data = await API.friends.list();
|
||||
_renderIncoming(data.incoming || []);
|
||||
_renderOutgoing(data.outgoing || []);
|
||||
_renderFriends(data.friends || []);
|
||||
_updateBadge((data.incoming || []).length);
|
||||
} catch { /* 401 wird vom Auth-Guard abgefangen */ }
|
||||
} catch { /* silent — 401 bei abgemeldeter Session */ }
|
||||
}
|
||||
|
||||
function _updateBadge(count) {
|
||||
|
|
@ -413,6 +424,7 @@ window.Page_friends = (() => {
|
|||
// SUCHE
|
||||
// ----------------------------------------------------------
|
||||
async function _doSearch(q) {
|
||||
if (!_appState.user) return;
|
||||
const el = _container.querySelector('#fr-search-results');
|
||||
try {
|
||||
const results = await API.friends.search(q);
|
||||
|
|
@ -462,6 +474,7 @@ window.Page_friends = (() => {
|
|||
// AKTIONEN
|
||||
// ----------------------------------------------------------
|
||||
async function _sendRequest(userId, btn) {
|
||||
if (!_appState.user) { App.navigate('settings'); return; }
|
||||
btn.disabled = true;
|
||||
btn.innerHTML = `<svg class="ph-icon"><use href="/icons/phosphor.svg#spinner"></use></svg>`;
|
||||
try {
|
||||
|
|
@ -514,6 +527,7 @@ window.Page_friends = (() => {
|
|||
}
|
||||
|
||||
async function _openChat(userId) {
|
||||
if (!_appState.user) { App.navigate('settings'); return; }
|
||||
try {
|
||||
const { conversation_id } = await API.chat.start(userId);
|
||||
App.navigate('chat', true, { conversation_id });
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue