@@ -2,7 +2,7 @@ import React, { useState, useEffect } from 'react';
2
2
import '../css/EpisodeDetail.css' ; // Import the CSS file for styling
3
3
import panelistsData from '../content/panel.json' ; // Import the JSON file
4
4
import { createURL } from '../utils' ;
5
- import { Helmet } from 'react-helmet ' ;
5
+ import { setMetaTags } from '../setMetaTags ' ;
6
6
7
7
const EpisodeDetail = ( { episode } ) => {
8
8
const [ transcript , setTranscript ] = useState ( '' ) ;
@@ -12,6 +12,13 @@ const EpisodeDetail = ({ episode }) => {
12
12
import ( `../transcripts/${ episode . episode } .js` )
13
13
. then ( ( module ) => setTranscript ( module . default ) )
14
14
. catch ( ( error ) => console . error ( 'Error loading transcript:' , error ) ) ;
15
+
16
+ setMetaTags ( {
17
+ title : episode . title ,
18
+ description : episode . description ,
19
+ image : `https://frontendhappyhour.com/public/img/episodes/friendly-preview/${ createURL ( episode . title ) } .jpeg` ,
20
+ url : `https://frontendhappyhour.com/episodes/${ createURL ( episode . title ) } `
21
+ } ) ;
15
22
}
16
23
} , [ episode ] ) ;
17
24
@@ -25,7 +32,7 @@ const EpisodeDetail = ({ episode }) => {
25
32
episode . panel . includes ( panelist . name )
26
33
) ;
27
34
28
- // Function to get guest image URL
35
+ // Function to get guest image URL
29
36
// if the guest has a twitter account the image is saved as their username .jpg
30
37
// if the guest doesn't have twitter the image is saved as their first-lastname.jpg lowercase
31
38
const getGuestImageUrl = ( guest ) => {
@@ -37,21 +44,6 @@ const EpisodeDetail = ({ episode }) => {
37
44
38
45
return (
39
46
< div className = "episode-detail" >
40
- < Helmet >
41
- < meta name = "viewport" content = "width=device-width" />
42
- < meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" />
43
- < link rel = "alternate" type = "application/rss+xml" href = "https://feeds.soundcloud.com/users/soundcloud:users:206137365/sounds.rss" />
44
- < meta property = "og:image" content = { `https://frontendhappyhour.com/public/img/episodes/friendly-preview/${ createURL ( episode . title ) } .jpeg` } />
45
- < meta property = "og:description" content = { `${ episode . description } ` } />
46
- < meta property = "og:title" content = { `${ episode . title } - Front End Happy Hour` } />
47
- < meta name = "twitter:description" content = { `${ episode . description } ` } />
48
- < meta property = "twitter:title" content = { `${ episode . title } - Front End Happy Hour` } />
49
- < meta name = "twitter:card" content = "summary_large_image" />
50
- < meta name = "twitter:site" content = "@frontendhappyhour" />
51
- < meta name = "twitter:creator" content = "@frontendhappyhour" />
52
- < link rel = "icon" href = "https://frontendhappyhour.com/favicon.ico" type = "image/x-icon" />
53
- < link rel = "canonical" href = { `https://frontendhappyhour.com/episodes/${ createURL ( episode . title ) } ` } />
54
- </ Helmet >
55
47
< h1 > { episode . title } </ h1 >
56
48
< p className = "episode-published" > Published on: { episode . published } </ p >
57
49
< p > { episode . description } </ p >
@@ -108,9 +100,7 @@ const EpisodeDetail = ({ episode }) => {
108
100
< li key = { index } className = "guest" >
109
101
< a href = { guest . twitter ? `https://twitter.com/${ guest . twitter } ` : '#' } target = "_blank" rel = "noopener noreferrer" >
110
102
< img src = { getGuestImageUrl ( guest ) } alt = { guest . name } className = "guest-image" />
111
- < p >
112
- { guest . name }
113
- </ p >
103
+ < p > { guest . name } </ p >
114
104
</ a >
115
105
</ li >
116
106
) ) }
0 commit comments