@@ -7,33 +7,30 @@ import { dateRanges } from 'src/config'
77import { useUserPreferences } from 'src/stores/preferences'
88import { CardPropsType , Repository } from 'src/types'
99import { useGetGithubRepos } from '../../api/getGithubRepos'
10+ import { useSelectedTags } from '../../hooks/useSelectedTags'
11+ import { CardHeader } from '../CardHeader'
1012import { CardSettings } from '../CardSettings'
1113import RepoItem from './RepoItem'
1214
1315const GLOBAL_TAG = { label : 'Global' , value : 'global' }
1416
1517export function GithubCard ( props : CardPropsType ) {
1618 const { meta } = props
17- const userSelectedTags = useUserPreferences ( ( state ) => state . userSelectedTags )
18- const setCardSettings = useUserPreferences ( ( state ) => state . setCardSettings )
19- const cardSettings = useUserPreferences ( ( state ) => state . cardsSettings ?. [ meta . value ] )
2019
21- const selectedTag = useMemo (
22- ( ) => userSelectedTags . find ( ( lang ) => lang . value === cardSettings ?. language ) || GLOBAL_TAG ,
23- [ userSelectedTags , cardSettings ]
24- )
20+ const setCardSettings = useUserPreferences ( ( state ) => state . setCardSettings )
21+ const { queryTags, selectedTag, cardSettings } = useSelectedTags ( {
22+ source : meta . value ,
23+ fallbackTag : GLOBAL_TAG ,
24+ } )
2525
2626 const selectedDateRange = useMemo (
2727 ( ) => dateRanges . find ( ( date ) => date . value === cardSettings ?. dateRange ) || dateRanges [ 0 ] ,
2828 [ cardSettings ]
2929 )
3030
3131 const { data, error, isLoading } = useGetGithubRepos ( {
32- tag : selectedTag . value ,
32+ tags : queryTags . map ( ( tag ) => tag . value ) ,
3333 dateRange : selectedDateRange . value ,
34- config : {
35- enabled : ! ! selectedTag ?. value ,
36- } ,
3734 } )
3835
3936 const renderItem = ( item : Repository , index : number ) => (
@@ -46,19 +43,17 @@ export function GithubCard(props: CardPropsType) {
4643 />
4744 )
4845
49- const HeaderTitle = ( ) => {
50- return (
51- < div >
52- Github < span className = "blockHeaderHighlight" > { selectedTag . label } </ span > { ' ' }
53- < span className = "blockHeaderHighlight" > { selectedDateRange . label . toLowerCase ( ) } </ span >
54- </ div >
55- )
56- }
57-
5846 return (
5947 < Card
6048 fullBlock = { true }
61- titleComponent = { < HeaderTitle /> }
49+ titleComponent = {
50+ < CardHeader label = { meta . label } fallbackTag = { GLOBAL_TAG } selectedTag = { selectedTag } >
51+ < div >
52+ Github < span className = "blockHeaderHighlight" > { selectedTag . label } </ span > { ' ' }
53+ < span className = "blockHeaderHighlight" > { selectedDateRange . label . toLowerCase ( ) } </ span >
54+ </ div >
55+ </ CardHeader >
56+ }
6257 settingsComponent = {
6358 < CardSettings
6459 url = { meta . link }
0 commit comments