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
38export 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
103133export 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
130166export function getTicketsByStatus ( status : TicketStatus ) {
131167 return ticketBatches . filter ( ( ticket ) => ticket . status === status ) ;
132168}
133169
134170export 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
140176export 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