1- import { useMemo } from 'react'
21import { Card } from 'src/components/Elements'
32import { ListConferenceComponent } from 'src/components/List/ListConferenceComponent'
4- import { useUserPreferences } from 'src/stores/preferences'
53import { CardPropsType , Conference } from 'src/types'
64import { useGetConferences } from '../../api/getConferences'
5+ import { useSelectedTags } from '../../hooks/useSelectedTags'
6+ import { CardHeader } from '../CardHeader'
77import { CardSettings } from '../CardSettings'
88import ConferenceItem from './ConferenceItem'
99
10+ const GLOBAL_TAG = { label : 'Global' , value : 'tech' }
1011export function ConferencesCard ( props : CardPropsType ) {
1112 const { meta } = props
12- const cardSettings = useUserPreferences ( ( state ) => state . cardsSettings ?. [ meta . value ] )
13- const { userSelectedTags } = useUserPreferences ( )
14-
15- const selectedTag = useMemo ( ( ) => {
16- return userSelectedTags . find ( ( lang ) => lang . value === cardSettings ?. language )
17- } , [ userSelectedTags , cardSettings ] )
18-
13+ const { queryTags, selectedTag, cardSettings } = useSelectedTags ( {
14+ source : meta . value ,
15+ fallbackTag : GLOBAL_TAG ,
16+ } )
1917 const { isLoading, data : results } = useGetConferences ( {
20- tags : selectedTag ? [ selectedTag . value ] : userSelectedTags . map ( ( tag ) => tag . value ) ,
18+ tags : queryTags . map ( ( tag ) => tag . value ) ,
2119 } )
2220
2321 const renderItem = ( item : Conference , index : number ) => (
@@ -27,6 +25,9 @@ export function ConferencesCard(props: CardPropsType) {
2725 return (
2826 < Card
2927 { ...props }
28+ titleComponent = {
29+ < CardHeader label = { meta . label } fallbackTag = { GLOBAL_TAG } selectedTag = { selectedTag } />
30+ }
3031 settingsComponent = {
3132 < CardSettings
3233 url = { meta . link }
0 commit comments