@@ -3,95 +3,96 @@ import {Link} from "react-router";
33import { StyledJobsInfo } from "../../JobOffers/components/JobsCard" ;
44import { Tag } from "../../../components/Tag/Tag" ;
55import {
6- ROUTE_SPEAKER_DETAIL ,
7- ROUTE_TALK_DETAIL ,
6+ ROUTE_SPEAKER_DETAIL ,
7+ ROUTE_TALK_DETAIL ,
88} from "../../../constants/routes" ;
99import {
10- StyledSessionCard ,
11- StyledSessionText ,
12- StyledTagsWrapper ,
13- StyledTalkSpeaker ,
14- StyledTalkTitle ,
15- StyledVoteTalkLink ,
10+ StyledSessionCard ,
11+ StyledSessionText ,
12+ StyledTagsWrapper ,
13+ StyledTalkSpeaker ,
14+ StyledTalkTitle ,
15+ StyledVoteTalkLink ,
1616} from "../Talks.style" ;
1717import { Color } from "../../../styles/colors" ;
1818import {
19- extractSessionCategoryInfo ,
20- extractSessionTags
19+ extractSessionCategoryInfo ,
20+ extractSessionTags
2121} from "../../../services/sessionsAdapter" ;
2222import {
23- CategoryItemEnum ,
24- QuestionAnswers ,
25- SessionCategory ,
26- SessionSpeaker
23+ CategoryItemEnum ,
24+ QuestionAnswers ,
25+ SessionCategory ,
26+ SessionSpeaker
2727} from "../../../types/sessions" ;
2828
2929export interface TalkCardProps {
30- talk : {
31- id : number ;
32- title : string ;
33- talkImage ?: number ;
34- speakers : SessionSpeaker [ ] ;
35- level ?: string ;
36- link ?: string ;
37- tags ?: string [ ] ;
38- track : string ;
39- categories : SessionCategory [ ] ;
40- questionAnswers : QuestionAnswers [ ] ;
41- } ;
42- showTrack ?: boolean ;
30+ talk : {
31+ id : number ;
32+ title : string ;
33+ talkImage ?: number ;
34+ speakers : SessionSpeaker [ ] ;
35+ level ?: string ;
36+ link ?: string ;
37+ tags ?: string [ ] ;
38+ track : string ;
39+ categories : SessionCategory [ ] ;
40+ questionAnswers : QuestionAnswers [ ] ;
41+ } ;
42+ showTrack ?: boolean ;
4343}
4444
4545export const TalkCard : FC < React . PropsWithChildren < TalkCardProps > > = ( {
46- showTrack = false ,
47- talk,
48- } ) => {
49- return (
50- < StyledSessionCard >
51- < StyledJobsInfo >
52- < StyledTalkTitle to = { `${ ROUTE_TALK_DETAIL } /${ talk . id } ` } >
53- { talk . title }
54- </ StyledTalkTitle >
55- < StyledSessionText >
56- { talk . speakers . map ( ( speaker : SessionSpeaker ) => (
57- < StyledTalkSpeaker key = { speaker . id } >
58- < Link to = { `${ ROUTE_SPEAKER_DETAIL } /${ speaker . id } ` } >
59- { speaker . name }
60- </ Link >
61- </ StyledTalkSpeaker >
62- ) ) }
63- </ StyledSessionText >
64- < StyledSessionText >
65- { `${ extractSessionCategoryInfo (
66- talk . categories ,
67- CategoryItemEnum . Format ,
68- ) } `}
69- { extractSessionCategoryInfo ( talk . categories ) } { " " }
70- </ StyledSessionText >
71- { showTrack && (
72- < StyledSessionText >
73- < strong > Track: </ strong >
74- { extractSessionCategoryInfo (
75- talk . categories ,
76- CategoryItemEnum . Track ,
77- ) }
78- </ StyledSessionText >
79- ) }
80- < StyledTagsWrapper >
81- { extractSessionTags ( talk . questionAnswers ) ?. map ( ( tag ) => {
82- return < Tag key = { tag } text = { tag } textColor = { Color . WHITE } /> ;
83- } ) }
84- </ StyledTagsWrapper >
85- < section >
86- < StyledVoteTalkLink
87- href = { `https://openfeedback.io/devbcn24/0/${ talk . id } ` }
88- target = { "_blank" }
89- rel = "noreferrer noopener"
90- >
91- 🗳️ < strong > Vote this talk</ strong >
92- </ StyledVoteTalkLink >
93- </ section >
94- </ StyledJobsInfo >
95- </ StyledSessionCard >
96- ) ;
46+ showTrack = false ,
47+ talk,
48+ } ) => {
49+ return (
50+ < StyledSessionCard >
51+ < StyledJobsInfo >
52+ < StyledTalkTitle to = { `${ ROUTE_TALK_DETAIL } /${ talk . id } ` } >
53+ { talk . title }
54+ </ StyledTalkTitle >
55+ < StyledSessionText >
56+ { talk . speakers . map ( ( speaker : SessionSpeaker ) => (
57+ < StyledTalkSpeaker key = { speaker . id } >
58+ < Link to = { `${ ROUTE_SPEAKER_DETAIL } /${ speaker . id } ` } >
59+ { speaker . name }
60+ </ Link >
61+ </ StyledTalkSpeaker >
62+ ) ) }
63+ </ StyledSessionText >
64+ < StyledSessionText >
65+ { `${ extractSessionCategoryInfo (
66+ talk . categories ,
67+ CategoryItemEnum . Format ,
68+ ) } `}
69+ { extractSessionCategoryInfo ( talk . categories ) } { " " }
70+ </ StyledSessionText >
71+ { showTrack && (
72+ < StyledSessionText >
73+ < strong > Track: </ strong >
74+ { extractSessionCategoryInfo (
75+ talk . categories ,
76+ CategoryItemEnum . Track ,
77+ ) }
78+ </ StyledSessionText >
79+ ) }
80+ < StyledTagsWrapper >
81+ { extractSessionTags ( talk . questionAnswers ) ?. map ( ( tag ) => {
82+ return < Tag key = { tag } text = { tag }
83+ textColor = { Color . WHITE } /> ;
84+ } ) }
85+ </ StyledTagsWrapper >
86+ < section style = { { display : "none" } } >
87+ < StyledVoteTalkLink
88+ href = { `https://openfeedback.io/devbcn24/0/${ talk . id } ` }
89+ target = { "_blank" }
90+ rel = "noreferrer noopener"
91+ >
92+ 🗳️ < strong > Vote this talk</ strong >
93+ </ StyledVoteTalkLink >
94+ </ section >
95+ </ StyledJobsInfo >
96+ </ StyledSessionCard >
97+ ) ;
9798} ;
0 commit comments