Skip to content

Commit a59055f

Browse files
committed
티켓 구입 링크 추가
1 parent 8f3ddc2 commit a59055f

File tree

9 files changed

+70
-4
lines changed

9 files changed

+70
-4
lines changed

frontend/components/core/PageTitle.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import styled from 'styled-components'
44
import { useTranslation } from 'react-i18next'
55

66
const Title = styled(Heading2)`
7-
margin: 2rem 0;
7+
margin: 2rem 0 3rem;
88
`
99

1010
interface PageTitleProps {

frontend/data/constants/resources.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ const Resources = {
2121
},
2222
pyconkrFacebook: 'https://www.facebook.com/pyconkorea',
2323
pyconkrTwitter: 'https://twitter.com/PyConKR',
24-
KEYNOTE_CATEGORY: '키노트 (Keynote)'
24+
KEYNOTE_CATEGORY: '키노트 (Keynote)',
25+
FESTA_TICKET_LINK: 'https://festa.io/events/2605'
2526
}
2627

2728
export default Resources

frontend/data/enums/PageName.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ export enum PageName {
33
About = 'About',
44
Pyconkr2022 = 'Pyconkr2022',
55
PreviousPyconkr = 'PreviousPyconkr',
6+
Ticket = 'Ticket',
67
Program = 'Program',
78
Keynote = 'Keynote',
89
Talks = 'Talks',

frontend/locales/en/label.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,7 @@ export default {
4141
difficulty: 'Difficulty',
4242
duration: 'Duration',
4343
language: 'Language',
44+
ticketInfo:
45+
'Tickets for PyCon Korea 2022 are available at Festa (festa.io).\nPyCon Korea 2022 regular ticket has limited quantities are sold and may be sold out early, so please purchase as soon as possible.',
46+
buyTicket: 'Buy ticket'
4447
}

frontend/locales/en/pageTitle.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ export default {
55
[PageName.About]: 'About',
66
[PageName.Pyconkr2022]: 'Pycon Korea 2022',
77
[PageName.PreviousPyconkr]: 'Previous PyCon Korea',
8+
[PageName.Ticket]: '티켓 구입',
89
[PageName.Program]: 'Program',
910
[PageName.Keynote]: 'Keynote',
1011
[PageName.Talks]: 'Talks',

frontend/locales/ko/label.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,5 +42,8 @@ export default {
4242
duration: '발표 시간',
4343
language: '언어',
4444
description: '설명',
45-
speakerIntro: '발표자 소개'
45+
speakerIntro: '발표자 소개',
46+
ticketInfo:
47+
'파이콘 한국 2022 티켓은 페스타(festa.io)에서 구입할 수 있습니다.\n파이콘 한국 2022 일반 티켓은 한정된 수량만 판매되어 조기 매진이 될 가능성이 있으니 서둘러 구매해주시기 바랍니다.',
48+
buyTicket: '티켓 구입하기'
4649
}

frontend/locales/ko/pageTitle.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ export default {
55
[PageName.About]: '파이콘 한국',
66
[PageName.Pyconkr2022]: '파이콘 한국 2022',
77
[PageName.PreviousPyconkr]: '지난 파이콘 한국',
8+
[PageName.Ticket]: '티켓 구입',
89
[PageName.Program]: '프로그램',
910
[PageName.Keynote]: '키노트',
1011
[PageName.Talks]: '발표',
@@ -13,7 +14,7 @@ export default {
1314
[PageName.Cfp]: '발표 제안하기',
1415
[PageName.CfpGuide]: '발표안 작성 가이드',
1516
[PageName.Sponsor]: '후원하기',
16-
[PageName.SponsorList]: '후원사',
17+
[PageName.SponsorList]: '후원사 목록',
1718
[PageName.SponsorPatrons]: '개인 후원자',
1819
[PageName.SponsorProspectus]: '후원사 안내',
1920
[PageName.SponsorJoin]: '후원사로 참여하기',

frontend/pages/about/ticket.tsx

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
import React from 'react'
2+
import type { NextPage, GetServerSideProps } from 'next'
3+
import { useTranslation } from 'react-i18next'
4+
import { PageName } from '../../data/enums/PageName'
5+
import PageTitle from '../../components/core/PageTitle'
6+
import { PageProps } from '../../interfaces/PageProps'
7+
import Resources from '../../data/constants/resources'
8+
import styled from 'styled-components'
9+
import { Paragraph } from '../../assets/styles/typo'
10+
11+
const TicketInfo = styled(Paragraph)`
12+
margin: 2rem 0;
13+
white-space: pre-line;
14+
`
15+
16+
const TicketLink = styled.a`
17+
display: inline-block;
18+
padding: 0.9rem 1.4rem;
19+
background-color: ${(props) => props.theme.colors.violet0};
20+
border-radius: 8px;
21+
text-decoration: none;
22+
font-weight: bold;
23+
color: ${(props) => props.theme.colors.white};
24+
`
25+
26+
const Ticket: NextPage = (props: PageProps) => {
27+
const { t } = useTranslation()
28+
29+
return (
30+
<div>
31+
<PageTitle title={props.pageName} />
32+
<TicketInfo>{t('label:ticketInfo')}</TicketInfo>
33+
<TicketLink
34+
href={Resources.FESTA_TICKET_LINK}
35+
target="_blank"
36+
rel="noreferrer"
37+
>
38+
{t('label:buyTicket')}
39+
</TicketLink>
40+
</div>
41+
)
42+
}
43+
44+
export const getServerSideProps: GetServerSideProps = async () => {
45+
return {
46+
props: {
47+
title: PageName.Ticket
48+
}
49+
}
50+
}
51+
52+
export default Ticket

frontend/routes/routes.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@ export const routes: RouteType[] = [
1818
{
1919
path: '/about/previous-pyconkr',
2020
name: PageName.PreviousPyconkr
21+
},
22+
{
23+
path: '/about/ticket',
24+
name: PageName.Ticket
2125
}
2226
]
2327
},

0 commit comments

Comments
 (0)