Skip to content

Commit ddcc867

Browse files
dtinthclaude[bot]
andcommitted
เพิ่มรอบตั๋ววิหคอัสดง (Late Bird) พร้อมสถานะ "coming soon"
- เพิ่ม "coming-soon" ใน TicketStatus type - เพิ่ม statusInfo สำหรับสถานะ "coming soon" ด้วยสีม่วงและไอคอน calendar-clock - เพิ่มรอบตั๋ว "วิหคอัสดง (Late Bird)" โดยไม่ระบุวันที่ - ปรับปรุงฟังก์ชัน formatReleaseDate ให้แสดง "TBD" เมื่อไม่มีวันที่ - ปรับปรุงการจัดรูปแบบโค้ดและชื่อ challenge บางรายการ Co-authored-by: Claude <209825114+claude[bot]@users.noreply.github.com>
1 parent 7823cf0 commit ddcc867

File tree

1 file changed

+76
-37
lines changed

1 file changed

+76
-37
lines changed

src/data/tickets.ts

Lines changed: 76 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1-
export type TicketStatus = "sold-out" | "ongoing" | "confirming" | "evaluating";
1+
export type TicketStatus =
2+
| "sold-out"
3+
| "ongoing"
4+
| "confirming"
5+
| "evaluating"
6+
| "coming-soon";
27

38
export interface TicketBatch {
49
name: string;
@@ -13,135 +18,169 @@ export const ticketBatches: TicketBatch[] = [
1318
name: "ผู้กล้าหาญในยามรุ่งอรุณ (Early bird)",
1419
releaseDate: "2025-01-08",
1520
status: "sold-out",
16-
announcementLink: "https://www.facebook.com/1098892262284446/posts/1136647991842206",
17-
solutionLink: "https://www.facebook.com/1098892262284446/posts/1137511411755864"
21+
announcementLink:
22+
"https://www.facebook.com/1098892262284446/posts/1136647991842206",
23+
solutionLink:
24+
"https://www.facebook.com/1098892262284446/posts/1137511411755864",
1825
},
1926
{
2027
name: "ผู้ปิดม่านราตรี (Early Bird but Night)",
2128
releaseDate: "2025-01-08",
2229
status: "sold-out",
23-
announcementLink: "https://www.facebook.com/1098892262284446/posts/1137082831798722",
24-
solutionLink: "https://www.facebook.com/1098892262284446/posts/1137511411755864"
30+
announcementLink:
31+
"https://www.facebook.com/1098892262284446/posts/1137082831798722",
32+
solutionLink:
33+
"https://www.facebook.com/1098892262284446/posts/1137511411755864",
2534
},
2635
{
2736
name: "ม้วนหนังสือขึ้นทะเบียนทีมผู้อาจหาญในความโง่ (Team application)",
2837
releaseDate: "2025-01-09",
2938
status: "confirming",
30-
announcementLink: "https://www.facebook.com/1098892262284446/posts/1138203471686658",
31-
solutionLink: "https://www.facebook.com/creatorsgarten/posts/pfbid0ea83mLZyCwDGKhgfbZtvmSUsWZfYcUSANjgWSK6PFi84kWZ8LjGVMS5Sxn62UA3rl"
39+
announcementLink:
40+
"https://www.facebook.com/1098892262284446/posts/1138203471686658",
41+
solutionLink:
42+
"https://www.facebook.com/creatorsgarten/posts/pfbid0ea83mLZyCwDGKhgfbZtvmSUsWZfYcUSANjgWSK6PFi84kWZ8LjGVMS5Sxn62UA3rl",
3243
},
3344
{
3445
name: "Find organizer's birth time challenge",
3546
releaseDate: "2025-01-10",
3647
status: "sold-out",
37-
announcementLink: "https://www.facebook.com/1098892262284446/posts/1138831264957212",
38-
solutionLink: "https://www.facebook.com/1098892262284446/posts/1139096018264070"
48+
announcementLink:
49+
"https://www.facebook.com/1098892262284446/posts/1138831264957212",
50+
solutionLink:
51+
"https://www.facebook.com/1098892262284446/posts/1139096018264070",
3952
},
4053
{
4154
name: "Human Only! Challenge",
4255
releaseDate: "2025-01-12",
4356
status: "ongoing",
44-
announcementLink: "https://www.facebook.com/1098892262284446/posts/1140794781427527"
57+
announcementLink:
58+
"https://www.facebook.com/1098892262284446/posts/1140794781427527",
4559
},
4660
{
4761
name: "0.01% gacha",
4862
releaseDate: "2025-01-13",
4963
status: "sold-out",
50-
announcementLink: "https://www.facebook.com/1098892262284446/posts/1141093324731006"
64+
announcementLink:
65+
"https://www.facebook.com/1098892262284446/posts/1141093324731006",
5166
},
5267
{
5368
name: "แตะหญ้า Online",
5469
releaseDate: "2025-01-14",
5570
status: "evaluating",
56-
announcementLink: "https://www.facebook.com/1098892262284446/posts/1141628484677490"
71+
announcementLink:
72+
"https://www.facebook.com/1098892262284446/posts/1141628484677490",
5773
},
5874
{
5975
name: "แตะหญ้า Chula",
6076
releaseDate: "2025-01-14",
6177
status: "ongoing",
62-
announcementLink: "https://www.facebook.com/1098892262284446/posts/1141860221320983"
78+
announcementLink:
79+
"https://www.facebook.com/1098892262284446/posts/1141860221320983",
6380
},
6481
{
6582
name: "แตะหญ้า KMITL",
6683
releaseDate: "2025-01-14",
6784
status: "sold-out",
68-
announcementLink: "https://www.facebook.com/1098892262284446/posts/1142482567925415"
85+
announcementLink:
86+
"https://www.facebook.com/1098892262284446/posts/1142482567925415",
6987
},
7088
{
7189
name: "It's Almost Working…!",
7290
releaseDate: "2025-01-15",
7391
status: "sold-out",
74-
announcementLink: "https://www.facebook.com/1098892262284446/posts/1142327827940889"
92+
announcementLink:
93+
"https://www.facebook.com/1098892262284446/posts/1142327827940889",
7594
},
7695
{
7796
name: "พาล ชาเลนจ์",
7897
releaseDate: "2025-01-15",
7998
status: "ongoing",
80-
announcementLink: "https://www.facebook.com/1098892262284446/posts/1142679694572369"
99+
announcementLink:
100+
"https://www.facebook.com/1098892262284446/posts/1142679694572369",
81101
},
82102
{
83-
name: "Poom's Vault",
103+
name: "“กูเอาตั๋วไว้ไหนวะ” challenge 💀",
84104
releaseDate: "2025-01-16",
85105
status: "sold-out",
86-
announcementLink: "https://www.facebook.com/1098892262284446/posts/1143133847860287"
106+
announcementLink:
107+
"https://www.facebook.com/1098892262284446/posts/1143133847860287",
87108
},
88109
{
89110
name: "เข้าเฝ้าแสดงเจตจำนง (Individual application)",
90111
releaseDate: "2025-01-16",
91112
status: "confirming",
92-
announcementLink: "https://www.facebook.com/1098892262284446/posts/1143478487825823",
93-
solutionLink: "https://www.facebook.com/creatorsgarten/posts/pfbid0ea83mLZyCwDGKhgfbZtvmSUsWZfYcUSANjgWSK6PFi84kWZ8LjGVMS5Sxn62UA3rl"
113+
announcementLink:
114+
"https://www.facebook.com/1098892262284446/posts/1143478487825823",
115+
solutionLink:
116+
"https://www.facebook.com/creatorsgarten/posts/pfbid0ea83mLZyCwDGKhgfbZtvmSUsWZfYcUSANjgWSK6PFi84kWZ8LjGVMS5Sxn62UA3rl",
94117
},
95118
{
96119
name: "Manchild Challenge",
97120
releaseDate: "2025-01-18",
98121
status: "ongoing",
99-
announcementLink: "https://www.facebook.com/1098892262284446/posts/1145007314339607"
100-
}
122+
announcementLink:
123+
"https://www.facebook.com/1098892262284446/posts/1145007314339607",
124+
},
125+
{
126+
name: "วิหคอัสดง (Late Bird)",
127+
releaseDate: "",
128+
status: "coming-soon",
129+
announcementLink: "",
130+
},
101131
];
102132

103133
export const statusInfo = {
104134
"sold-out": {
105135
label: "Sold Out",
106136
color: "bg-red-500",
107137
textColor: "text-red-400",
108-
icon: "mdi:close-circle"
138+
icon: "mdi:close-circle",
109139
},
110-
"ongoing": {
140+
ongoing: {
111141
label: "Ongoing",
112142
color: "bg-green-500",
113143
textColor: "text-green-400",
114-
icon: "mdi:clock"
144+
icon: "mdi:clock",
115145
},
116-
"confirming": {
146+
confirming: {
117147
label: "Confirming Participation",
118148
color: "bg-blue-500",
119149
textColor: "text-blue-400",
120-
icon: "mdi:account-check"
150+
icon: "mdi:account-check",
121151
},
122-
"evaluating": {
152+
evaluating: {
123153
label: "Evaluating",
124154
color: "bg-orange-500",
125155
textColor: "text-orange-400",
126-
icon: "mdi:eye"
127-
}
156+
icon: "mdi:eye",
157+
},
158+
"coming-soon": {
159+
label: "Coming Soon",
160+
color: "bg-purple-500",
161+
textColor: "text-purple-400",
162+
icon: "mdi:calendar-clock",
163+
},
128164
} as const;
129165

130166
export function getTicketsByStatus(status: TicketStatus) {
131167
return ticketBatches.filter((ticket) => ticket.status === status);
132168
}
133169

134170
export function getOngoingTickets() {
135-
return ticketBatches.filter((ticket) =>
136-
ticket.status === "ongoing" || ticket.status === "confirming"
171+
return ticketBatches.filter(
172+
(ticket) => ticket.status === "ongoing" || ticket.status === "confirming"
137173
);
138174
}
139175

140176
export function formatReleaseDate(dateString: string): string {
177+
if (!dateString || dateString === "") {
178+
return "TBD";
179+
}
141180
const date = new Date(dateString);
142-
return date.toLocaleDateString('en-US', {
143-
month: 'short',
144-
day: 'numeric',
145-
year: 'numeric'
181+
return date.toLocaleDateString("en-US", {
182+
month: "short",
183+
day: "numeric",
184+
year: "numeric",
146185
});
147-
}
186+
}

0 commit comments

Comments
 (0)