@@ -279,9 +279,13 @@ export default function Home() {
279279
280280 const refresh = useCallback ( async ( ) => {
281281 try {
282- const response = await fetch ( `/diff-data.json?t=${ Date . now ( ) } ` , {
282+ const liveResponse = await fetch ( `/diff-data.json?t=${ Date . now ( ) } ` , {
283283 cache : "no-store" ,
284284 } ) ;
285+ const response =
286+ liveResponse . status === 404
287+ ? await fetch ( "/demo-diff-data.json" )
288+ : liveResponse ;
285289 if ( ! response . ok ) throw new Error ( `Snapshot returned ${ response . status } ` ) ;
286290 const next = ( await response . json ( ) ) as DiffSnapshot ;
287291 if ( ! Array . isArray ( next . files ) ) throw new Error ( "Snapshot has no files" ) ;
@@ -639,26 +643,42 @@ export default function Home() {
639643 </ span >
640644 </ div >
641645
642- { notesInProgress || noteUnavailable ? (
646+ { notesInProgress ? (
647+ < div
648+ className = "summary-loading"
649+ role = "status"
650+ aria-live = "polite"
651+ >
652+ < h2 id = "summary-heading" > Writing summary of diff...</ h2 >
653+ < div className = "note-skeleton" aria-hidden = "true" >
654+ < div className = "note-skeleton-group" >
655+ < span className = "note-skeleton-line note-skeleton-line--long" />
656+ < span className = "note-skeleton-line note-skeleton-line--medium" />
657+ </ div >
658+ < div className = "note-skeleton-group" >
659+ < span className = "note-skeleton-line note-skeleton-line--label" />
660+ < span className = "note-skeleton-line note-skeleton-line--long" />
661+ < span className = "note-skeleton-line note-skeleton-line--short" />
662+ </ div >
663+ < div className = "note-skeleton-group" >
664+ < span className = "note-skeleton-line note-skeleton-line--label" />
665+ < span className = "note-skeleton-line note-skeleton-line--medium" />
666+ < span className = "note-skeleton-line note-skeleton-line--long" />
667+ < span className = "note-skeleton-line note-skeleton-line--short" />
668+ </ div >
669+ </ div >
670+ </ div >
671+ ) : noteUnavailable ? (
643672 < >
644- < h2 id = "summary-heading" >
645- { notesInProgress
646- ? "Writing this note."
647- : "This note is not ready." }
648- </ h2 >
673+ < h2 id = "summary-heading" > This note is not ready.</ h2 >
649674 < p className = "summary-lead" >
650- { notesInProgress
651- ? "The diff is ready to review. This file’s note will appear when its batch finishes."
652- : "The agent stopped before it reached this file. The diff is still ready to review." }
675+ The agent stopped before it reached this file. The diff is
676+ still ready to review.
653677 </ p >
654678 < section className = "note-section note-section--pending" >
655- < p className = "eyebrow" >
656- { notesInProgress ? "NOTE PROGRESS" : "WHAT TO DO" }
657- </ p >
679+ < p className = "eyebrow" > WHAT TO DO</ p >
658680 < p >
659- { notesInProgress
660- ? `${ noteProgress } . You can review any finished file now.`
661- : "Check the terminal error, then start Diff Presenter again." }
681+ Check the terminal error, then start Diff Presenter again.
662682 </ p >
663683 </ section >
664684 </ >
@@ -699,28 +719,27 @@ export default function Home() {
699719 </ ul >
700720 </ section >
701721 ) : null }
702-
703722 </ div >
704723
705- < footer className = "agent-signoff" >
706- < span className = "agent-glyph" aria-hidden = "true" >
707- ✦
708- </ span >
709- < span >
710- { notesInProgress
711- ? "The coding agent is writing notes"
712- : noteUnavailable
724+ { ! notesInProgress ? (
725+ < footer className = "agent-signoff" >
726+ < span className = "agent-glyph" aria-hidden = "true" >
727+ ✦
728+ </ span >
729+ < span >
730+ { noteUnavailable
713731 ? "The coding agent stopped"
714732 : "Written by the coding agent" }
715- < small >
716- { notesInProgress || noteUnavailable
717- ? noteProgress
718- : `Snapshot ${ snapshot . version . slice ( 0 , 10 ) } · ${ new Date (
719- snapshot . generatedAt ,
720- ) . toLocaleString ( ) } `}
721- </ small >
722- </ span >
723- </ footer >
733+ < small >
734+ { noteUnavailable
735+ ? noteProgress
736+ : `Snapshot ${ snapshot . version . slice ( 0 , 10 ) } · ${ new Date (
737+ snapshot . generatedAt ,
738+ ) . toLocaleString ( ) } `}
739+ </ small >
740+ </ span >
741+ </ footer >
742+ ) : null }
724743 </ aside >
725744 </ div >
726745 </ section >
0 commit comments