mirror of
https://github.com/tiennm99/ccs.git
synced 2026-09-02 22:17:14 +00:00
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:
+18
-5
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user