Skip to content

Commit a0450a7

Browse files
committed
refactor: update ConferencesCard and ConferenceItem components for improved tag handling and rendering
1 parent 89afad0 commit a0450a7

2 files changed

Lines changed: 14 additions & 13 deletions

File tree

src/features/cards/components/conferencesCard/ConferenceItem.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,9 +102,9 @@ const ConferencesItem = ({ item, index, analyticsTag }: BaseItemPropsType<Confer
102102
? `Ongoing, ${conferenceDate}`
103103
: `${conferenceDate}`}
104104
</span>
105-
</div>
106-
<div className="rowDetails">
107-
<ColoredLanguagesBadge languages={[item.tag]} />
105+
<span className="rowItem">
106+
<ColoredLanguagesBadge languages={item.tags} />
107+
</span>
108108
</div>
109109
</>
110110
) : (

src/features/cards/components/conferencesCard/ConferencesCard.tsx

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,21 @@
1-
import { useMemo } from 'react'
21
import { Card } from 'src/components/Elements'
32
import { ListConferenceComponent } from 'src/components/List/ListConferenceComponent'
4-
import { useUserPreferences } from 'src/stores/preferences'
53
import { CardPropsType, Conference } from 'src/types'
64
import { useGetConferences } from '../../api/getConferences'
5+
import { useSelectedTags } from '../../hooks/useSelectedTags'
6+
import { CardHeader } from '../CardHeader'
77
import { CardSettings } from '../CardSettings'
88
import ConferenceItem from './ConferenceItem'
99

10+
const GLOBAL_TAG = { label: 'Global', value: 'tech' }
1011
export 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

Comments
 (0)