Skip to content

Commit 14bc2f4

Browse files
authored
Merge pull request #146 from tskaigi/feat/subevents-page
サブイベントページ
2 parents 9edb66f + 791974c commit 14bc2f4

File tree

3 files changed

+91
-1
lines changed

3 files changed

+91
-1
lines changed

app/lib/data.tsx

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { IconType } from "react-icons";
2-
import { FaBook, FaHandshake, FaBan } from "react-icons/fa";
2+
import { FaBook, FaHandshake, FaBan, FaBolt } from "react-icons/fa";
33
import { FaXTwitter } from "react-icons/fa6";
44
import { GiPublicSpeaker } from "react-icons/gi";
55
import { HiHome } from "react-icons/hi";
@@ -63,6 +63,15 @@ export const pageInfos: PageInfo[] = [
6363
},
6464
{
6565
index: 6,
66+
title: "サブイベント",
67+
showNavbar: true,
68+
showFooter: true,
69+
description: "TSKaigiの公認サブイベントです",
70+
icon: FaBolt as IconType,
71+
href: "/subevents",
72+
},
73+
{
74+
index: 7,
6675
title: "特定商取引法に基づく表記",
6776
showNavbar: false,
6877
showFooter: true,
@@ -879,3 +888,22 @@ EventHubは、マーケティング、営業のためのウェビナー・カン
879888
},
880889
],
881890
};
891+
892+
export const SUB_EVENTS = [
893+
{
894+
title: "【学生向け】来年は TSKaigi に登壇するぞ!LT会&交流会で学生エンジニアと繋がろう!",
895+
description: `初LT大歓迎!TS好きな学生も触ったことない学生も集まってワイワイ盛り上がろう!
896+
897+
カンファレンスに登壇してるエンジニアってかっこいいですよね!
898+
899+
でも、登壇するにはハードルが高い...そんなあなたに向けて、今回は学生限定のTSKaigiサブイベントとしてLT会を企画しました。
900+
この機会をきっかけにし、ぜひ来年のTSKaigiではプロポーザルを出しましょう!
901+
`,
902+
sponsorList: ["株式会社Progate", "エムスリー株式会社"],
903+
tags: ["学生向け", "公募枠あり", "オンラインあり"],
904+
date: "5/17",
905+
day: "金",
906+
link: "https://progate.connpass.com/event/318009/",
907+
thumbnail: "/subevent_5_17.png",
908+
}
909+
];

app/subevents/page.tsx

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
import React from "react";
2+
import Container from "../ui/container";
3+
import { FaExternalLinkAlt } from "react-icons/fa";
4+
import { SUB_EVENTS } from "../lib/data";
5+
6+
const Tag = ({ children }: { children: string }) => {
7+
return (
8+
<div className="w-max rounded-full bg-[#345DA7] px-3 py-2 text-sm leading-none text-white">
9+
# {children}
10+
</div>
11+
);
12+
};
13+
14+
const SubEventPage = () => {
15+
return (
16+
<Container>
17+
<div className="flex flex-col">
18+
<h1 className="mt-4 text-2xl font-bold tracking-tight text-accent">
19+
TSKaigiのサブイベントに参加しよう!
20+
</h1>
21+
<p className="mt-6 text-lg leading-7">
22+
TSKaigiのスポンサー企業によって実施される、TSKaigiのサブイベントをご紹介します。ご参加お待ちしております!
23+
</p>
24+
<p className="mt-1 text-sm">※ 正確な情報は各イベントページをご確認ください。</p>
25+
</div>
26+
<div className="mt-10 flex flex-col gap-8">
27+
{SUB_EVENTS.map(({ title, link, description, tags, date, day, thumbnail, sponsorList }) => (
28+
<div
29+
key={title}
30+
className="flex flex-col rounded-xl bg-white p-4 text-slate-800 md:flex-row"
31+
>
32+
<div className="w-full shrink-0 border-b border-b-slate-200 border-r-slate-200 p-2 pb-4 pr-8 text-3xl md:w-[112px] md:border-b-0 md:border-r md:p-4">
33+
{date}
34+
<br />
35+
<span className="text-xl">({day})</span>
36+
</div>
37+
<div className="p-2 pt-4 md:p-4">
38+
<a href={link} target="_blank" rel="noopener noreferrer">
39+
<h2 className="text-xl font-bold underline hover:no-underline">
40+
{title}
41+
<FaExternalLinkAlt className="ml-2 inline" size={14} />
42+
</h2>
43+
</a>
44+
<a href={link} target="_blank" rel="noopener noreferrer">
45+
<img src={thumbnail} alt={title} className="mt-4 h-full max-h-[200px]" />
46+
</a>
47+
<p className="mt-4 whitespace-pre-line">{description}</p>
48+
<div className="mt-4 flex flex-wrap gap-2">
49+
{tags.map((tag) => (
50+
<Tag key={tag}>{tag}</Tag>
51+
))}
52+
</div>
53+
<div className="mt-4 w-full text-end text-sm">実施: {sponsorList.join("、")}</div>
54+
</div>
55+
</div>
56+
))}
57+
</div>
58+
</Container>
59+
);
60+
};
61+
62+
export default SubEventPage;

public/subevent_5_17.png

79.2 KB
Loading

0 commit comments

Comments
 (0)