fix(settings): show sessions load errors explicitly
Some checks are pending
CI / test (push) Has started running
Some checks are pending
CI / test (push) Has started running
This commit is contained in:
@@ -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) => (
|
||||||
|
|||||||
Reference in New Issue
Block a user