diff --git a/src/pages/Program/sprint.tsx b/src/pages/Program/sprint.tsx new file mode 100644 index 0000000..bb53fa0 --- /dev/null +++ b/src/pages/Program/sprint.tsx @@ -0,0 +1,55 @@ +import React from "react" +import Page from "components/common/Page" +import useTranslation from "utils/hooks/useTranslation"; + +import { useNavigate } from "react-router"; + +const TutorialPage = () => { + const t = useTranslation(); + const navigate = useNavigate(); + + const goToForm = () => { + alert("모집이 곧 시작될 예정입니다. 잠시만 기다려 주세요.") + } + + return +

{t("PyCon Korea 2024 스프린트 진행자 모집")}

+ {t("PyCon Korea 2024에서 새로운 스프린터가 질주하는 데에 도움을 주실 멘토 분들을 모집합니다.")} + +

+

{t("스프린트란?")}

+ {t("PyCon Korea의 스프린트는 오픈소스 프로젝트에 대해 집중적으로 학습하고 개발하는 프로그램입니다. 이 곳에서는 새로운 동료들을 만나고, 오픈소스에서 얻을 수 있는 경험과 지식을 자유롭게 나눌 수 있습니다. ")} +

+

{t("스프린트를 처음 진행하시나요?")}

+ {t("이 문서")}{t("를 참고해보시는 것은 어떨까요? (Getting your open source project ready for new contributors)")} +

+

{t("진행일정 및 장소")}

+ + {t("일자: 2024년 10월 25일 금요일")}
+ {t("장소: 수원 컨벤션센터 3층")} +
+

+

{t("진행자 모집 일정")}

+ {t("~ 2024년 07월 31일 수요일 23:59:59 (KST)")} +

+

{t("지난 스프린트")}

+ +

+

{t("참고사항")}

+ +

+

{t("문의")}

+ program@pycon.kr +
; +} + +export default TutorialPage; \ No newline at end of file diff --git a/src/pages/Program/tutorial.tsx b/src/pages/Program/tutorial.tsx index fb2e799..159bebd 100644 --- a/src/pages/Program/tutorial.tsx +++ b/src/pages/Program/tutorial.tsx @@ -2,13 +2,20 @@ import React from "react" import Page from "components/common/Page" import useTranslation from "utils/hooks/useTranslation"; +import { useNavigate } from "react-router"; + const TutorialPage = () => { const t = useTranslation(); + const navigate = useNavigate(); + + const goToForm = () => { + alert("모집이 곧 시작될 예정입니다. 잠시만 기다려 주세요.") + } return

{t("PyCon Korea 2024 튜토리얼 진행자 모집")}

{t("PyCon Korea 2024 참가자 분들께 새로운 기술, 라이브러리를 전수해주실 진행자 분들을 모집합니다.")} - +

{t("튜토리얼이란?")}

{t("PyCon Korea의 튜토리얼은 파이썬에 대한 새로운 기술이나 라이브러리를 먼저 경험하신 분들로부터 직접 배울 수 있는 프로그램입니다. 이 곳에서는 현장에서 질문하고 해결하는 과정을 통해 해당 기술에 대해 깊이 있는 지식을 습득하게 됩니다.")} diff --git a/src/pages/Ticket/buy.tsx b/src/pages/Ticket/buy.tsx index 34c201b..e083e9a 100644 --- a/src/pages/Ticket/buy.tsx +++ b/src/pages/Ticket/buy.tsx @@ -119,6 +119,7 @@ const BuyTicket = ({ onPaymentCompleted }: Props) => { {Object.entries(tickets).map(([k, v]) => (

{t(v.name)}

+

티켓 판매 시작: 2024년 7월 15일 14:00 부터

{v.tickets.map((ticket) => ( diff --git a/src/pages/Ticket/index.tsx b/src/pages/Ticket/index.tsx index f4d58b0..2e339ca 100644 --- a/src/pages/Ticket/index.tsx +++ b/src/pages/Ticket/index.tsx @@ -1,6 +1,8 @@ import React, { useState } from "react"; import BuyTicket from "./buy"; import PaymentResult from "./paymentResult"; +import { useNavigate } from "react-router"; +import { Navigate } from "react-router-dom"; type State = { view: "LIST" | "PAYMENT_RESULT"; @@ -8,9 +10,16 @@ type State = { const TicketPage = () => { const [view, setView] = useState("LIST"); + const navigate = useNavigate(); switch (view) { case "LIST": + + if (!localStorage.getItem("id")) { + alert("로그인이 필요합니다."); + return ; + } + return ( { diff --git a/src/routes.tsx b/src/routes.tsx index 222a5f2..03b727d 100644 --- a/src/routes.tsx +++ b/src/routes.tsx @@ -11,6 +11,7 @@ import TicketPage from "pages/Ticket"; import PaymentList from "pages/Ticket/paymentList"; import SponsorPage from "pages/Sponsor"; import TutorialPage from "pages/Program/tutorial"; +import SprintPage from "pages/Program/sprint"; import Pyconkr2024 from "pages/About/pyconkr2024"; import Cfp from "pages/Contribution/cfp"; @@ -29,6 +30,7 @@ const Router = () => { } /> } /> } /> + } /> } /> } />