Skip to content

Commit b9ef4ee

Browse files
committed
장소 안내 페이지 추가
1 parent b2c7983 commit b9ef4ee

File tree

11 files changed

+111
-6
lines changed

11 files changed

+111
-6
lines changed

frontend/components/service/Home/MainIdentity.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ import { useTranslation } from 'react-i18next'
55

66
const MainTheme = styled.div`
77
height: calc(100vh - 100px);
8+
${media.mobile(`
9+
height: calc(100vh - 120px);
10+
`)}
811
`
912

1013
const Window = styled.div`

frontend/data/enums/PageName.ts

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

frontend/locales/en/label.ts

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,10 @@ export default {
1717
desc:
1818
'The slogan for PyCon Korea 2022 is "Do Anything with Python".\n' +
1919
'We all have the potential to create anything as long as we love Python!\n' +
20+
'PyCon Korea will open this year as well!\n' +
2021
'Pythonistas from all walks of life share their experiences and their dreams.\n' +
21-
'PyCon will open this year as well!\n' +
22-
'See you in PyCon KR 2022.'
22+
'PyCon Korea 2022 will be held both online and offline.\n' +
23+
'See you in PyCon Korea 2022.'
2324
},
2425
diff: {
2526
title: "What's the difference between PyCon and other developer's conferences?",
@@ -49,5 +50,13 @@ export default {
4950
'PyCon Korea 2022 merchandises and offline tickets are available at Festa (festa.io).\nOffline ticket has limited quantities are sold and may be sold out early, so please purchase as soon as possible.',
5051
buyTicket: 'Buy ticket',
5152
locationInfo: 'Simultaneous online-offline',
52-
eventDetail: 'About Pycon Korea 2022'
53+
eventDetail: 'About Pycon Korea 2022',
54+
venueTitle: 'Community House MASIL',
55+
venueAddress: '14, Myeongdong 11-gil, Jung-gu, Seoul, Republic of Korea',
56+
noParking: 'Parking is not supported, so please use public transportation.',
57+
elevatorAvailable: 'Elevator is available.',
58+
floorInfo: 'Floor Information',
59+
youtubeStreaming:
60+
'PyCon Korea 2022 will be held both online and offline. The talks will be streamed on the PyCon Korea YouTube(https://www.youtube.com/c/PyConKRtube).',
61+
pyConKrYoutube: 'PyCon Korea YouTube'
5362
}

frontend/locales/en/pageTitle.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@ import { PageName } from '../../data/enums/PageName'
33
export default {
44
[PageName.Home]: 'PYCONKR 2022',
55
[PageName.About]: 'About',
6-
[PageName.Pyconkr2022]: 'Pycon Korea 2022',
6+
[PageName.Pyconkr2022]: 'PyCon Korea 2022',
77
[PageName.PreviousPyconkr]: 'Previous PyCon Korea',
8-
[PageName.Ticket]: '티켓 구입',
8+
[PageName.Ticket]: 'Buy Ticket',
9+
[PageName.Venue]: 'Venue',
910
[PageName.Program]: 'Program',
1011
[PageName.Keynote]: 'Keynote',
1112
[PageName.Talks]: 'Talks',

frontend/locales/ko/label.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ export default {
1919
'우리 모두는 어떤 것이든 만들어 낼 수 있는 잠재력을 가지고 있습니다. 파이썬을 좋아하는 마음만 있다면요!\n' +
2020
'올해도 어김없이 파이콘이 열립니다.\n' +
2121
'파이썬 하나로 다양한 파이써니스타들이 경험을 나누고 꿈을 이야기합니다.\n' +
22+
'파이콘 한국 2022는 온라인과 오프라인 동시에 진행됩니다.\n' +
2223
'파이콘 한국 2022에서 만나요.'
2324
},
2425
diff: {
@@ -54,5 +55,13 @@ export default {
5455
eventDetail: '행사 상세',
5556
aboutEvent:
5657
'파이콘 한국은 한국의 파이썬 개발자들이 지식을 공유하고 만남을 갖기 위한 장입니다.\n파이콘 한국 2022은 온라인과 오프라인 동시에 진행됩니다.',
57-
sponsorList: '후원사 목록'
58+
sponsorList: '후원사 목록',
59+
venueTitle: '커뮤니티 하우스 마실',
60+
venueAddress: '주소: 서울시 중구 명동11길 14',
61+
noParking: '주차는 지원되지 않습니다. 대중교통 이용을 부탁드립니다.',
62+
elevatorAvailable: '엘리베이터 이용이 가능합니다.',
63+
floorInfo: '층별 안내',
64+
youtubeStreaming:
65+
'파이콘 한국 2022는 파이콘 한국 유튜브 채널(https://www.youtube.com/c/PyConKRtube)에서 시청 가능합니다. 세션은 온라인과 오프라인 동시에 진행됩니다.',
66+
pyConKrYoutube: '파이콘 한국 유튜브'
5867
}

frontend/locales/ko/pageTitle.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ export default {
66
[PageName.Pyconkr2022]: '파이콘 한국 2022',
77
[PageName.PreviousPyconkr]: '지난 파이콘 한국',
88
[PageName.Ticket]: '티켓 구입',
9+
[PageName.Venue]: '장소 안내',
910
[PageName.Program]: '프로그램',
1011
[PageName.Keynote]: '키노트',
1112
[PageName.Talks]: '발표',

frontend/pages/about/venue.tsx

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
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 Image from 'next/image'
8+
import styled from 'styled-components'
9+
import FirstFloorMap from '../../public/images/1st-floor.jpg'
10+
import SecondFloorMap from '../../public/images/2nd-floor.jpg'
11+
import VenueMap from '../../public/images/venue.jpg'
12+
import { Heading3, Heading4 } from '../../assets/styles/typo'
13+
import Linkify from 'react-linkify'
14+
15+
const ImageBlock = styled(Image)`
16+
display: block;
17+
margin: 1rem 0;
18+
`
19+
const VenueInfo = styled.div`
20+
margin-bottom: 4rem;
21+
a {
22+
color: ${(props) => props.theme.colors.blue0};
23+
}
24+
`
25+
const Description = styled.div`
26+
margin: 1rem 0 2rem;
27+
`
28+
const List = styled.li`
29+
list-style: inside;
30+
`
31+
const FloorTitle = styled(Heading4)`
32+
margin: 1rem 0;
33+
`
34+
35+
const TalkSchedule: NextPage = (props: PageProps) => {
36+
const { t } = useTranslation()
37+
38+
return (
39+
<>
40+
<PageTitle title={props.pageName} />
41+
<VenueInfo>
42+
<Heading3 useGradient={true}>
43+
{t('label:pyConKrYoutube')}
44+
</Heading3>
45+
<Description>
46+
<Linkify>{t('label:youtubeStreaming')}</Linkify>
47+
</Description>
48+
</VenueInfo>
49+
<VenueInfo>
50+
<Heading3 useGradient={true}>{t('label:venueTitle')}</Heading3>
51+
<ImageBlock src={VenueMap} alt={'Venue Image'} />
52+
<Description>
53+
<ul>
54+
<List>{t('label:venueAddress')}</List>
55+
<List>{t('label:elevatorAvailable')}</List>
56+
<List>{t('label:noParking')}</List>
57+
</ul>
58+
</Description>
59+
<Heading3 useGradient={true}>{t('label:floorInfo')}</Heading3>
60+
<FloorTitle>1층</FloorTitle>
61+
<ImageBlock src={FirstFloorMap} alt={'First Floor Image'} />
62+
<FloorTitle>2층</FloorTitle>
63+
<ImageBlock src={SecondFloorMap} alt={'Second Floor Image'} />
64+
</VenueInfo>
65+
</>
66+
)
67+
}
68+
69+
export const getServerSideProps: GetServerSideProps = async () => {
70+
return {
71+
props: {
72+
title: PageName.Venue
73+
}
74+
}
75+
}
76+
77+
export default TalkSchedule
71.9 KB
Loading
85.7 KB
Loading

frontend/public/images/venue.jpg

225 KB
Loading

0 commit comments

Comments
 (0)