fix(dashboard): guard droid docs links for older API payloads

- prevent blank page when docsReference.links/providerDocs are absent

- fallback to empty lists so /droid stays usable during schema drift
This commit is contained in:
Tam Nhu Tran
2026-02-26 00:09:15 +07:00
parent 031dcd99c3
commit e7f3b3ffcf
+18 -5
View File
@@ -203,6 +203,19 @@ export function DroidPage() {
); );
} }
const docsReference = diagnostics.docsReference ?? {
notes: [],
links: [],
providerDocs: [],
providerValues: [],
settingsHierarchy: [],
};
const docsNotes = docsReference.notes ?? [];
const docsLinks = docsReference.links ?? [];
const providerDocs = docsReference.providerDocs ?? [];
const providerValues = docsReference.providerValues ?? [];
const settingsHierarchy = docsReference.settingsHierarchy ?? [];
return ( return (
<ScrollArea className="h-full"> <ScrollArea className="h-full">
<div className="space-y-4 p-4"> <div className="space-y-4 p-4">
@@ -337,7 +350,7 @@ export function DroidPage() {
</CardTitle> </CardTitle>
</CardHeader> </CardHeader>
<CardContent className="space-y-2 text-sm"> <CardContent className="space-y-2 text-sm">
{diagnostics.docsReference.notes.map((note) => ( {docsNotes.map((note) => (
<p key={note} className="text-muted-foreground"> <p key={note} className="text-muted-foreground">
- {note} - {note}
</p> </p>
@@ -348,7 +361,7 @@ export function DroidPage() {
Factory Docs Factory Docs
</p> </p>
<div className="space-y-1.5"> <div className="space-y-1.5">
{diagnostics.docsReference.links.map((link) => ( {docsLinks.map((link) => (
<a <a
key={link.id} key={link.id}
href={link.url} href={link.url}
@@ -371,7 +384,7 @@ export function DroidPage() {
Provider Fact-Check Docs Provider Fact-Check Docs
</p> </p>
<div className="space-y-1.5"> <div className="space-y-1.5">
{diagnostics.docsReference.providerDocs.map((providerDoc) => ( {providerDocs.map((providerDoc) => (
<a <a
key={`${providerDoc.provider}-${providerDoc.url}`} key={`${providerDoc.provider}-${providerDoc.url}`}
href={providerDoc.url} href={providerDoc.url}
@@ -392,10 +405,10 @@ export function DroidPage() {
</div> </div>
<Separator /> <Separator />
<p className="text-xs text-muted-foreground"> <p className="text-xs text-muted-foreground">
Provider values: {diagnostics.docsReference.providerValues.join(', ')} Provider values: {providerValues.join(', ')}
</p> </p>
<p className="text-xs text-muted-foreground"> <p className="text-xs text-muted-foreground">
Settings hierarchy: {diagnostics.docsReference.settingsHierarchy.join(' -> ')} Settings hierarchy: {settingsHierarchy.join(' -> ')}
</p> </p>
</CardContent> </CardContent>
</Card> </Card>