@@ -19,7 +19,7 @@ export function ResultDisplay({
1919 const [ copyNotice , setCopyNotice ] = useState ( '' ) ;
2020 const [ showAllPreviewItems , setShowAllPreviewItems ] = useState ( false ) ;
2121 const copyResetReference = useRef < number | undefined > ( undefined ) ;
22- const { feed, preview, readinessPhase, previewStatus, warnings , retry } = result ;
22+ const { feed, preview, readinessPhase, previewStatus } = result ;
2323
2424 const fullUrl = feed . public_url . startsWith ( 'http' )
2525 ? feed . public_url
@@ -28,36 +28,39 @@ export function ResultDisplay({
2828 ? feed . json_public_url
2929 : `${ globalThis . location . origin } ${ feed . json_public_url } ` ;
3030 const subscribeUrl = / ^ h t t p s ? : \/ \/ / i. test ( fullUrl ) ? `feed:${ fullUrl } ` : undefined ;
31- const isFeedReady = readinessPhase === 'feed_ready' ;
31+ const canUseFeed = readinessPhase === 'feed_ready' || readinessPhase === 'preview_unavailable ';
3232 const canManuallyRetryReadiness =
33- readinessPhase !== 'feed_ready ' || warnings . some ( ( warning ) => warning . retryable ) ;
33+ readinessPhase === 'link_created ' || readinessPhase === 'feed_not_ready_yet' ;
3434 const isReadinessCheckInProgress = preview . isLoading ;
3535 const previewItems = showAllPreviewItems ? preview . items : preview . items . slice ( 0 , 3 ) ;
3636 const hasMorePreviewItems = preview . items . length > 3 ;
3737 const statusTitle = {
3838 link_created : 'Feed created' ,
3939 feed_ready : 'Feed ready' ,
4040 feed_not_ready_yet : 'Feed still warming up' ,
41- preview_unavailable : 'Readiness check unavailable ' ,
41+ preview_unavailable : 'Feed link created ' ,
4242 } [ readinessPhase ] ;
4343 const statusMessage = {
4444 link_created : 'Checking readiness now.' ,
45- feed_ready : 'This feed has been verified and is ready to use. ' ,
45+ feed_ready : '' ,
4646 feed_not_ready_yet : 'The feed endpoint is still warming up. Try checking again in a few seconds.' ,
47- preview_unavailable : 'We could not verify readiness right now. Try checking again. ' ,
47+ preview_unavailable : '' ,
4848 } [ readinessPhase ] ;
4949 const previewMessage = {
50- pending : 'Verifying feed readiness…' ,
51- ready :
52- preview . items . length > 0
53- ? ''
54- : 'Feed is ready. Preview items will appear once the source publishes entries.' ,
55- degraded :
56- preview . items . length > 0
57- ? 'Preview content is partially degraded right now.'
58- : 'Feed is ready, but preview content is partially degraded right now.' ,
59- unavailable : 'Preview unavailable right now.' ,
50+ pending : 'Checking preview…' ,
51+ ready : '' ,
52+ degraded : 'Preview could not be verified.' ,
53+ unavailable : '' ,
6054 } [ previewStatus ] ;
55+ const hasPreviewItems = preview . items . length > 0 ;
56+ const showResultStatusNote =
57+ readinessPhase === 'feed_ready' && previewStatus === 'degraded' && ! preview . isLoading && ! hasPreviewItems ;
58+ const showPreviewStatusOnly =
59+ ! preview . isLoading &&
60+ ! hasPreviewItems &&
61+ ! ! previewMessage &&
62+ readinessPhase !== 'feed_ready' &&
63+ readinessPhase !== 'preview_unavailable' ;
6164
6265 useEffect ( ( ) => {
6366 return ( ) => {
@@ -93,13 +96,10 @@ export function ResultDisplay({
9396 < div class = "layout-stack layout-stack--tight" >
9497 < h1 class = "result-title ui-display-title" > { statusTitle } </ h1 >
9598 < p class = "result-meta layout-rail-copy" > { feed . name } </ p >
96- < p class = "field-help" > { statusMessage } </ p >
97- { retry ?. automatic && < p class = "field-help" > Feed creation recovered automatically.</ p > }
98- { warnings . map ( ( warning ) => (
99- < p key = { warning . code } class = "field-help field-help--warning" >
100- { warning . message }
101- </ p >
102- ) ) }
99+ { statusMessage && < p class = "field-help" > { statusMessage } </ p > }
100+ { showResultStatusNote && (
101+ < p class = "result-status-note field-help field-help--warning" > { previewMessage } </ p >
102+ ) }
103103 </ div >
104104 </ div >
105105 < div class = "result-hero__actions ui-hero__actions" >
@@ -111,7 +111,7 @@ export function ResultDisplay({
111111 disabled = { isReadinessCheckInProgress }
112112 aria-busy = { isReadinessCheckInProgress }
113113 >
114- { isReadinessCheckInProgress ? 'Checking readiness …' : 'Try readiness check again' }
114+ { isReadinessCheckInProgress ? 'Checking…' : 'Check again' }
115115 </ button >
116116 ) }
117117 </ div >
@@ -130,7 +130,7 @@ export function ResultDisplay({
130130 />
131131
132132 < div class = "result-actions result-actions--quiet layout-rail-reading" >
133- { isFeedReady && (
133+ { canUseFeed && (
134134 < >
135135 < a href = { fullUrl } class = "btn btn--primary" target = "_blank" rel = "noopener noreferrer" >
136136 Open feed
@@ -154,13 +154,12 @@ export function ResultDisplay({
154154 < section class = "result-preview layout-rail-reading layout-stack" aria-label = "Feed preview status" >
155155 < div class = "result-preview__header layout-stack layout-stack--tight" >
156156 < p class = "result-preview__label ui-eyebrow" > Preview</ p >
157- < p class = "result-preview__intro" > Latest items from this feed</ p >
158157 </ div >
159- < p class = "field-help" > Verifying feed readiness… </ p >
158+ < p class = "field-help" > { previewMessage } </ p >
160159 </ section >
161160 ) }
162161
163- { ! preview . isLoading && preview . items . length > 0 && (
162+ { ! preview . isLoading && hasPreviewItems && (
164163 < section class = "result-preview layout-rail-reading layout-stack" aria-label = "Feed preview" >
165164 < div class = "result-preview__header layout-stack layout-stack--tight" >
166165 < p class = "result-preview__label ui-eyebrow" > Preview</ p >
@@ -196,11 +195,10 @@ export function ResultDisplay({
196195 </ section >
197196 ) }
198197
199- { ! preview . isLoading && preview . items . length === 0 && previewMessage && (
198+ { showPreviewStatusOnly && (
200199 < section class = "result-preview layout-rail-reading layout-stack" aria-label = "Feed preview status" >
201200 < div class = "result-preview__header layout-stack layout-stack--tight" >
202201 < p class = "result-preview__label ui-eyebrow" > Preview</ p >
203- < p class = "result-preview__intro" > Latest items from this feed</ p >
204202 </ div >
205203 < p
206204 class = {
0 commit comments