@@ -47,7 +47,7 @@ export function GithubCard(props: CardPropsType) {
4747 return [ ]
4848 }
4949 if ( ! selectedTag ?. githubValues ) {
50- throw Error ( `Github Trending does not support ${ selectedTag . label } .` )
50+ return [ ]
5151 }
5252
5353 if ( selectedTag . value === MY_LANGUAGES_TAG . githubValues [ 0 ] ) {
@@ -56,7 +56,13 @@ export function GithubCard(props: CardPropsType) {
5656 return selectedTag . githubValues
5757 }
5858
59- const results = useGetArticles ( { tags : getQueryTags ( ) , dateRange : selectedDateRange . value } )
59+ const results = useGetArticles ( {
60+ tags : getQueryTags ( ) ,
61+ dateRange : selectedDateRange . value ,
62+ config : {
63+ enabled : ! ! selectedTag ?. githubValues ,
64+ } ,
65+ } )
6066
6167 const getIsLoading = ( ) => results . some ( ( result ) => result . isLoading )
6268
@@ -97,18 +103,27 @@ export function GithubCard(props: CardPropsType) {
97103 />
98104 < span > Repos of </ span >
99105 < SelectableCard
100- tagId = { DATE_RANGE_MENU_ID }
101- selectedTag = { selectedDateRange }
102- setSelectedTag = { setSelectedDateRange }
103- fallbackTag = { dateRanges [ 0 ] }
104- trackEvent = { ( tag : DateRangeType ) => trackCardDateRangeSelect ( 'Repos' , tag . value ) }
105- cardSettings = { cardsSettings ?. repos ?. dateRange }
106- data = { dateRanges }
107- />
106+ tagId = { DATE_RANGE_MENU_ID }
107+ selectedTag = { selectedDateRange }
108+ setSelectedTag = { setSelectedDateRange }
109+ fallbackTag = { dateRanges [ 0 ] }
110+ trackEvent = { ( tag : DateRangeType ) => trackCardDateRangeSelect ( 'Repos' , tag . value ) }
111+ cardSettings = { cardsSettings ?. repos ?. dateRange }
112+ data = { dateRanges }
113+ />
108114 </ div >
109115 )
110116 }
111117
118+ const getError = ( ) => {
119+ if ( ! selectedTag ?. githubValues ) {
120+ return `Github Trending does not support ${ selectedTag ?. label || 'the selected tag' } .`
121+ } else if ( results . every ( ( result ) => result . isError ) ) {
122+ return 'Failed to load Github trending repositories'
123+ } else {
124+ return undefined
125+ }
126+ }
112127 return (
113128 < CardComponent
114129 fullBlock = { true }
@@ -117,6 +132,7 @@ export function GithubCard(props: CardPropsType) {
117132 title = { < HeaderTitle /> } >
118133 < ListComponent
119134 items = { getData ( ) }
135+ error = { getError ( ) }
120136 isLoading = { getIsLoading ( ) }
121137 renderItem = { renderItem }
122138 withAds = { withAds }
0 commit comments