@@ -19,40 +19,46 @@ export function useComparisonChangelogs(
1919 selectedDateRange : { startDate : string ; endDate : string } ,
2020 availableDates : string [ ] ,
2121) {
22- const isComparisonMode =
23- selectedGPUs . length > 0 && ! ! selectedDateRange . startDate && ! ! selectedDateRange . endDate ;
22+ const hasGPUs = selectedGPUs . length > 0 ;
23+ const hasDateRange = ! ! selectedDateRange . startDate && ! ! selectedDateRange . endDate ;
2424
25- // Query all available dates within the selected range to discover which have changelog entries
26- const datesInRange = useMemo ( ( ) => {
27- if ( ! isComparisonMode ) return [ ] ;
25+ // When GPUs selected: fetch all available dates. When date range also set: limit to range.
26+ const datesToQuery = useMemo ( ( ) => {
27+ if ( ! hasGPUs ) return [ ] ;
28+ if ( ! hasDateRange ) return availableDates ;
2829 return availableDates . filter (
2930 ( d ) => d >= selectedDateRange . startDate && d <= selectedDateRange . endDate ,
3031 ) ;
31- } , [ isComparisonMode , availableDates , selectedDateRange . startDate , selectedDateRange . endDate ] ) ;
32+ } , [
33+ hasGPUs ,
34+ hasDateRange ,
35+ availableDates ,
36+ selectedDateRange . startDate ,
37+ selectedDateRange . endDate ,
38+ ] ) ;
3239
3340 const queries = useQueries ( {
34- queries : datesInRange . map ( ( date ) => ( {
41+ queries : datesToQuery . map ( ( date ) => ( {
3542 queryKey : [ 'workflow-info' , date ] ,
3643 queryFn : ( ) => fetchWorkflowInfo ( date ) ,
37- enabled : isComparisonMode ,
44+ enabled : hasGPUs ,
3845 } ) ) ,
3946 } ) ;
4047
4148 const changelogs = useMemo ( ( ) => {
42- if ( ! isComparisonMode ) return [ ] ;
49+ if ( ! hasGPUs ) return [ ] ;
4350
4451 const results : ComparisonChangelog [ ] = [ ] ;
4552
46- for ( let i = 0 ; i < datesInRange . length ; i ++ ) {
53+ for ( let i = 0 ; i < datesToQuery . length ; i ++ ) {
4754 const query = queries [ i ] ;
4855 if ( ! query . data ) continue ;
4956
5057 const data = query . data as WorkflowInfoResponse ;
5158 if ( ! data . changelogs || data . changelogs . length === 0 ) continue ;
5259
53- // Include all changelogs for this date (across all runs)
5460 results . push ( {
55- date : datesInRange [ i ] ,
61+ date : datesToQuery [ i ] ,
5662 headRef : data . changelogs [ data . changelogs . length - 1 ] ?. head_ref ,
5763 runUrl : data . runs [ data . runs . length - 1 ] ?. html_url ?? undefined ,
5864 entries : data . changelogs . map ( ( c : ChangelogRow ) => ( {
@@ -64,18 +70,18 @@ export function useComparisonChangelogs(
6470 }
6571
6672 return results ;
67- } , [ isComparisonMode , datesInRange , queries ] ) ;
73+ } , [ hasGPUs , datesToQuery , queries ] ) ;
6874
69- // Intermediate dates with any changelog entries (excluding start/end)
75+ // Intermediate dates with any changelog entries (excluding start/end when date range is set )
7076 const intermediateDates = useMemo ( ( ) => {
71- if ( ! isComparisonMode ) return [ ] ;
77+ if ( ! hasGPUs || ! hasDateRange ) return [ ] ;
7278 return changelogs
7379 . filter ( ( c ) => c . date !== selectedDateRange . startDate && c . date !== selectedDateRange . endDate )
7480 . map ( ( c ) => c . date )
7581 . sort ( ) ;
76- } , [ isComparisonMode , changelogs , selectedDateRange . startDate , selectedDateRange . endDate ] ) ;
82+ } , [ hasGPUs , hasDateRange , changelogs , selectedDateRange . startDate , selectedDateRange . endDate ] ) ;
7783
7884 const loading = queries . some ( ( q ) => q . isLoading ) ;
7985
80- return { changelogs, intermediateDates, loading, totalDatesQueried : datesInRange . length } ;
86+ return { changelogs, intermediateDates, loading, totalDatesQueried : datesToQuery . length } ;
8187}
0 commit comments