11import { GetServerSideProps , GetServerSidePropsContext , NextPage } from 'next'
22import React from 'react'
33import { LocalePage } from '../../../interfaces/PageProps'
4- import { ISpeaker , ITalkItem } from '../../../interfaces/IProgram'
4+ import { IPerson , ITalkItem } from '../../../interfaces/IProgram'
55import { getTalkById } from '../../api/program'
66import PageTitle from '../../../components/core/PageTitle'
77import { useTranslation } from 'react-i18next'
@@ -24,6 +24,9 @@ const DetailContainer = styled.div`
2424const Description = styled . div `
2525 margin-top: 2rem;
2626 white-space: pre-line;
27+ & + & {
28+ margin-top: 4rem;
29+ }
2730`
2831
2932const SpeakerContainer = styled . div `
@@ -34,11 +37,12 @@ const TalkListDetail: NextPage = (props: TalkListDetailProps) => {
3437 const { t } = useTranslation ( )
3538
3639 const item : ITalkItem = props [ props . locale ]
37- const speaker : ISpeaker = {
40+ const speaker : IPerson = {
3841 image : item . speaker_profile_img ?? DEFAULT_PROFILE_PATH ,
3942 name : item . user_name ,
4043 introduction : item . introduction
4144 }
45+ const videoUrl = item . video_url ?? ''
4246
4347 return (
4448 < DetailContainer >
@@ -59,6 +63,12 @@ const TalkListDetail: NextPage = (props: TalkListDetailProps) => {
5963 < Heading3 useGradient = { true } > { t ( 'label:description' ) } </ Heading3 >
6064 < Linkify > { item . desc } </ Linkify >
6165 </ Description >
66+ < Description >
67+ < Heading3 useGradient = { true } > { t ( 'label:videoLink' ) } </ Heading3 >
68+ < a href = { videoUrl } target = { '_blank' } rel = "noreferrer" >
69+ { videoUrl }
70+ </ a >
71+ </ Description >
6272 < SpeakerContainer >
6373 < Heading3 useGradient = { true } >
6474 { t ( 'label:speakerIntro' ) }
0 commit comments