fix(settings): show sessions load errors explicitly
Some checks are pending
CI / test (push) Has started running

This commit is contained in:
2026-03-08 20:34:36 +03:00
parent 586d3acc16
commit 25b6f470d5

View File

@@ -38,6 +38,7 @@ export function SettingsPanel({ open, onClose }: Props) {
const [privacyPrivateMessages, setPrivacyPrivateMessages] = useState<"everyone" | "contacts" | "nobody">("everyone"); const [privacyPrivateMessages, setPrivacyPrivateMessages] = useState<"everyone" | "contacts" | "nobody">("everyone");
const [sessions, setSessions] = useState<AuthSession[]>([]); const [sessions, setSessions] = useState<AuthSession[]>([]);
const [sessionsLoading, setSessionsLoading] = useState(false); const [sessionsLoading, setSessionsLoading] = useState(false);
const [sessionsError, setSessionsError] = useState<string | null>(null);
const [revokeAllLoading, setRevokeAllLoading] = useState(false); const [revokeAllLoading, setRevokeAllLoading] = useState(false);
const [revokingSessionIds, setRevokingSessionIds] = useState<string[]>([]); const [revokingSessionIds, setRevokingSessionIds] = useState<string[]>([]);
const [twofaCode, setTwofaCode] = useState(""); const [twofaCode, setTwofaCode] = useState("");
@@ -185,6 +186,7 @@ export function SettingsPanel({ open, onClose }: Props) {
} }
let cancelled = false; let cancelled = false;
setSessionsLoading(true); setSessionsLoading(true);
setSessionsError(null);
void (async () => { void (async () => {
try { try {
const rows = await listSessions(); const rows = await listSessions();
@@ -194,6 +196,7 @@ export function SettingsPanel({ open, onClose }: Props) {
} catch { } catch {
if (!cancelled) { if (!cancelled) {
setSessions([]); setSessions([]);
setSessionsError("Failed to load sessions");
} }
} finally { } finally {
if (!cancelled) { if (!cancelled) {
@@ -697,6 +700,7 @@ export function SettingsPanel({ open, onClose }: Props) {
</button> </button>
</div> </div>
{sessionsLoading ? <p className="text-xs text-slate-400">Loading sessions...</p> : null} {sessionsLoading ? <p className="text-xs text-slate-400">Loading sessions...</p> : null}
{!sessionsLoading && sessionsError ? <p className="text-xs text-red-400">{sessionsError}</p> : null}
{!sessionsLoading && sessions.length === 0 ? <p className="text-xs text-slate-400">No active sessions</p> : null} {!sessionsLoading && sessions.length === 0 ? <p className="text-xs text-slate-400">No active sessions</p> : null}
<div className="space-y-2"> <div className="space-y-2">
{sessions.map((session) => ( {sessions.map((session) => (