Skip to content

Commit 6a51d59

Browse files
authored
conf: fix event title (graphql#1537)
1 parent cedfa6b commit 6a51d59

19 files changed

+32
-24
lines changed

src/components/Conf/Schedule/ScheduleList.tsx

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { format, parseISO, compareAsc } from "date-fns"
22
import React, { FC } from "react"
33
import { eventsColors } from "../../../utils/eventsColors"
4+
import { getEventTitle } from "../../../utils/eventTitle"
45

56
function groupByKey<T>(arr: T[], getKey: (entity: T) => any) {
67
return Array.from<[string, T[]]>(
@@ -84,15 +85,7 @@ const ScheduleList: FC<Props> = ({
8485
: session.event_type
8586

8687
const speakers = session.speakers?.split(",") || []
87-
const eventTitle =
88-
speakers.length > 0
89-
? session.name.substring(
90-
0,
91-
session.name.indexOf(
92-
`${speakers[0].replace("ı", "i")}`
93-
) - 3
94-
)
95-
: session.name
88+
const eventTitle = getEventTitle(session, speakers)
9689

9790
const [borderColor] = getSessionColor(
9891
session.event_type.toLowerCase()

src/templates/EventOgImageTemplate.tsx

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { PageProps } from "gatsby"
33
import { ScheduleSession } from "../components/Conf/Schedule/ScheduleList"
44
import { SchedSpeaker } from "../components/Conf/Speakers/Speaker"
55
import { format, parseISO } from "date-fns"
6+
import { getEventTitle } from "../utils/eventTitle"
67

78
const EventOgImageTemplate = ({
89
pageContext,
@@ -13,19 +14,16 @@ const EventOgImageTemplate = ({
1314
company: speaker.company,
1415
position: speaker.position,
1516
}))
16-
const { name, event_type, event_start: eventDate } = pageContext.event
17+
const { event_type, event_start: eventDate } = pageContext.event
1718

1819
const eventType = event_type.endsWith("s")
1920
? event_type.slice(0, -1)
2021
: event_type
2122

22-
const eventTitle =
23-
speakers.length > 0
24-
? name.substring(
25-
0,
26-
name.indexOf(`${speakers[0].name.replace("ı", "i")}`) - 3
27-
)
28-
: name
23+
const eventTitle = getEventTitle(
24+
pageContext.event,
25+
pageContext.speakers.map(s => s.name)
26+
)
2927

3028
return (
3129
<div

src/templates/event.tsx

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import {
1717
SocialMediaIconServiceType,
1818
} from "../components/Conf/Speakers/SocialMedia"
1919
import { BackLink } from "../components/Conf/Schedule/BackLink"
20+
import { getEventTitle } from "../utils/eventTitle"
2021

2122
const Tag = ({
2223
text,
@@ -45,13 +46,10 @@ export const EventComponent: FC<{
4546
? event.event_type.slice(0, -1)
4647
: event.event_type
4748

48-
const eventTitle =
49-
speakers.length > 0
50-
? event.name.substring(
51-
0,
52-
event.name.indexOf(`${speakers[0].name.replace("ı", "i")}`) - 3
53-
)
54-
: event.name
49+
const eventTitle = getEventTitle(
50+
event,
51+
speakers.map(s => s.name)
52+
)
5553

5654
return (
5755
<div className={`bg-white ${!hideBackButton ? "py-10" : ""}`}>

src/utils/eventTitle.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import { ScheduleSession } from "../components/Conf/Schedule/ScheduleList"
2+
3+
export function getEventTitle(
4+
event: ScheduleSession,
5+
speakers: string[] | undefined
6+
): string {
7+
if (!speakers) {
8+
return event.name
9+
}
10+
11+
speakers?.forEach(speaker => {
12+
const speakerInTitle = event.name.indexOf(`- ${speaker.replace("ı", "i")}`)
13+
if (speakerInTitle > -1) {
14+
event.name = event.name.slice(0, speakerInTitle)
15+
}
16+
})
17+
18+
return event.name
19+
}
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading

0 commit comments

Comments
 (0)