chore(polish): integrate toasts, reports paging, loading motion; login centring floor for short windows; load-more uses notifyError; round records
Independent Staging Quality Gate / validate (push) Successful in 18m44s
Independent Staging Quality Gate / publish (push) Successful in 3m34s

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N4f2nya58RoRu4yEmJgRGE
This commit is contained in:
Jesse_Chen
2026-09-30 13:55:02 +08:00
co-authored by Claude Opus 5.5
parent 3e0c615fd8
commit da3ed2f3ab
9 changed files with 113 additions and 47 deletions
@@ -4,7 +4,7 @@ import { AppLink } from "@/components/app-link";
import { FileText, RefreshCw } from "lucide-react";
import { InlineSpinner } from "@/components/inline-spinner";
import { useCallback, useEffect, useRef, useState } from "react";
import { toast } from "sonner";
import { notifyError } from "@/lib/notify";
import { SecondaryPageShell } from "@/components/secondary-page-shell";
import { readCurrentSubjectScope, useCurrentSubjectScope, useCurrentSubjectReady } from "@/lib/current-subject";
@@ -172,10 +172,10 @@ export function PersonalReportCenter() {
const fresh = page.reports.filter(report => !deletedIds.current.has(report.id));
setState(current => ({ ...current, reports: appendReportPage(current.reports, fresh), nextCursor: page.nextCursor, extended: true }));
} else {
toast.error("更早的报告没读出来,再试一次。");
notifyError("更早的报告没读出来,再试一次。", { id: "reports-load-more" });
}
} catch {
if (!cancelled.current) toast.error("更早的报告没读出来,再试一次。");
if (!cancelled.current) notifyError("更早的报告没读出来,再试一次。", { id: "reports-load-more" });
} finally {
if (!cancelled.current) setLoadingMore(false);
}