1
1
import React , { Fragment } from "react" ;
2
+ import { addDays , subDays } from "date-fns" ;
2
3
import { ContestTile } from "./ContestTile" ;
3
4
import { Meta , StoryObj } from "@storybook/react" ;
4
5
import { CodingLanguage , ContestEcosystem , ContestTileVariant } from "./ContestTile.types" ;
@@ -36,6 +37,7 @@ const defaultArgs = {
36
37
htmlId : "" ,
37
38
contestData : {
38
39
codeAccess : "public" ,
40
+ cohorts : [ ] ,
39
41
contestType : "Open Audit" ,
40
42
isUserCertified : false ,
41
43
contestId : 321 ,
@@ -75,6 +77,25 @@ export const ContestTileUpcoming: Story = (args) => {
75
77
</ Fragment >
76
78
} ;
77
79
80
+ export const ContestTileUpcomingRollingTriage : Story = ( args ) => {
81
+ const isDark = args . variant === ContestTileVariant . DARK || args . variant === ContestTileVariant . COMPACT_DARK ;
82
+
83
+ return < Fragment >
84
+ < ContestTile
85
+ { ...args }
86
+ variant = { isDark ? ContestTileVariant . DARK : ContestTileVariant . LIGHT }
87
+ startDate = { new Date ( args . contestData . startDate ) . toISOString ( ) }
88
+ endDate = { new Date ( args . contestData . endDate ) . toISOString ( ) }
89
+ />
90
+ < ContestTile
91
+ { ...args }
92
+ variant = { isDark ? ContestTileVariant . COMPACT_DARK : ContestTileVariant . COMPACT_LIGHT }
93
+ startDate = { new Date ( args . contestData . startDate ) . toISOString ( ) }
94
+ endDate = { new Date ( args . contestData . endDate ) . toISOString ( ) }
95
+ />
96
+ </ Fragment >
97
+ } ;
98
+
78
99
export const ContestTileLive : Story = ( args ) => {
79
100
const isDark = args . variant === ContestTileVariant . DARK || args . variant === ContestTileVariant . COMPACT_DARK ;
80
101
@@ -94,6 +115,61 @@ export const ContestTileLive: Story = (args) => {
94
115
</ Fragment >
95
116
} ;
96
117
118
+ export const ContestTileLiveCohort1 : Story = ( args ) => {
119
+ const isDark = args . variant === ContestTileVariant . DARK || args . variant === ContestTileVariant . COMPACT_DARK ;
120
+
121
+ return < Fragment >
122
+ < ContestTile
123
+ { ...args }
124
+ variant = { isDark ? ContestTileVariant . DARK : ContestTileVariant . LIGHT }
125
+ startDate = { new Date ( args . contestData . startDate ) . toISOString ( ) }
126
+ endDate = { new Date ( args . contestData . endDate ) . toISOString ( ) }
127
+ />
128
+ < ContestTile
129
+ { ...args }
130
+ variant = { isDark ? ContestTileVariant . COMPACT_DARK : ContestTileVariant . COMPACT_LIGHT }
131
+ startDate = { new Date ( args . contestData . startDate ) . toISOString ( ) }
132
+ endDate = { new Date ( args . contestData . endDate ) . toISOString ( ) }
133
+ />
134
+ </ Fragment >
135
+ } ;
136
+ export const ContestTileLivePreCohort2 : Story = ( args ) => {
137
+ const isDark = args . variant === ContestTileVariant . DARK || args . variant === ContestTileVariant . COMPACT_DARK ;
138
+
139
+ return < Fragment >
140
+ < ContestTile
141
+ { ...args }
142
+ variant = { isDark ? ContestTileVariant . DARK : ContestTileVariant . LIGHT }
143
+ startDate = { new Date ( args . contestData . startDate ) . toISOString ( ) }
144
+ endDate = { new Date ( args . contestData . endDate ) . toISOString ( ) }
145
+ />
146
+ < ContestTile
147
+ { ...args }
148
+ variant = { isDark ? ContestTileVariant . COMPACT_DARK : ContestTileVariant . COMPACT_LIGHT }
149
+ startDate = { new Date ( args . contestData . startDate ) . toISOString ( ) }
150
+ endDate = { new Date ( args . contestData . endDate ) . toISOString ( ) }
151
+ />
152
+ </ Fragment >
153
+ } ;
154
+ export const ContestTileLiveCohort3 : Story = ( args ) => {
155
+ const isDark = args . variant === ContestTileVariant . DARK || args . variant === ContestTileVariant . COMPACT_DARK ;
156
+
157
+ return < Fragment >
158
+ < ContestTile
159
+ { ...args }
160
+ variant = { isDark ? ContestTileVariant . DARK : ContestTileVariant . LIGHT }
161
+ startDate = { new Date ( args . contestData . startDate ) . toISOString ( ) }
162
+ endDate = { new Date ( args . contestData . endDate ) . toISOString ( ) }
163
+ />
164
+ < ContestTile
165
+ { ...args }
166
+ variant = { isDark ? ContestTileVariant . COMPACT_DARK : ContestTileVariant . COMPACT_LIGHT }
167
+ startDate = { new Date ( args . contestData . startDate ) . toISOString ( ) }
168
+ endDate = { new Date ( args . contestData . endDate ) . toISOString ( ) }
169
+ />
170
+ </ Fragment >
171
+ } ;
172
+
97
173
export const ContestTileEnded : Story = ( args ) => {
98
174
const isDark = args . variant === ContestTileVariant . DARK || args . variant === ContestTileVariant . COMPACT_DARK ;
99
175
@@ -127,7 +203,11 @@ export const BountyTile: Story = (args) => {
127
203
}
128
204
129
205
ContestTileUpcoming . parameters = parameters ;
206
+ ContestTileUpcomingRollingTriage . parameters = parameters ;
130
207
ContestTileLive . parameters = parameters ;
208
+ ContestTileLiveCohort1 . parameters = parameters ;
209
+ ContestTileLivePreCohort2 . parameters = parameters ;
210
+ ContestTileLiveCohort3 . parameters = parameters ;
131
211
ContestTileEnded . parameters = parameters ;
132
212
BountyTile . parameters = parameters ;
133
213
@@ -139,6 +219,28 @@ ContestTileUpcoming.args = {
139
219
endDate : "2030-07-21T18:00:00.000Z"
140
220
}
141
221
} ;
222
+ ContestTileUpcomingRollingTriage . args = {
223
+ ...defaultArgs ,
224
+ contestData : {
225
+ ...defaultArgs . contestData ,
226
+ cohorts : [ {
227
+ name : "cohort-1" ,
228
+ pauseTime : addDays ( Date . now ( ) , 6 ) . toISOString ( ) ,
229
+ resumeTime : null
230
+ } , {
231
+ name : "cohort-2" ,
232
+ pauseTime : addDays ( Date . now ( ) , 13 ) . toISOString ( ) ,
233
+ resumeTime : addDays ( Date . now ( ) , 9 ) . toISOString ( ) ,
234
+ } , {
235
+ name : "cohort-3" ,
236
+ pauseTime : null ,
237
+ resumeTime : addDays ( Date . now ( ) , 16 ) . toISOString ( ) ,
238
+ } ] ,
239
+ startDate : addDays ( Date . now ( ) , 3 ) . toISOString ( ) ,
240
+ endDate : addDays ( Date . now ( ) , 20 ) . toISOString ( ) ,
241
+ }
242
+ } ;
243
+
142
244
143
245
ContestTileLive . args = {
144
246
...defaultArgs ,
@@ -148,6 +250,69 @@ ContestTileLive.args = {
148
250
endDate : "2030-07-21T18:00:00.000Z"
149
251
}
150
252
} ;
253
+ ContestTileLiveCohort1 . args = {
254
+ ...defaultArgs ,
255
+ contestData : {
256
+ ...defaultArgs . contestData ,
257
+ cohorts : [ {
258
+ name : "cohort-1" ,
259
+ pauseTime : addDays ( Date . now ( ) , 4 ) . toISOString ( ) ,
260
+ resumeTime : null
261
+ } , {
262
+ name : "cohort-2" ,
263
+ pauseTime : addDays ( Date . now ( ) , 11 ) . toISOString ( ) ,
264
+ resumeTime : addDays ( Date . now ( ) , 7 ) . toISOString ( ) ,
265
+ } , {
266
+ name : "cohort-3" ,
267
+ pauseTime : null ,
268
+ resumeTime : addDays ( Date . now ( ) , 14 ) . toISOString ( ) ,
269
+ } ] ,
270
+ startDate : subDays ( Date . now ( ) , 1 ) . toISOString ( ) ,
271
+ endDate : addDays ( Date . now ( ) , 18 ) . toISOString ( ) ,
272
+ }
273
+ } ;
274
+ ContestTileLivePreCohort2 . args = {
275
+ ...defaultArgs ,
276
+ contestData : {
277
+ ...defaultArgs . contestData ,
278
+ cohorts : [ {
279
+ name : "cohort-1" ,
280
+ pauseTime : subDays ( Date . now ( ) , 1 ) . toISOString ( ) ,
281
+ resumeTime : null
282
+ } , {
283
+ name : "cohort-2" ,
284
+ pauseTime : addDays ( Date . now ( ) , 6 ) . toISOString ( ) ,
285
+ resumeTime : addDays ( Date . now ( ) , 2 ) . toISOString ( ) ,
286
+ } , {
287
+ name : "cohort-3" ,
288
+ pauseTime : null ,
289
+ resumeTime : addDays ( Date . now ( ) , 9 ) . toISOString ( ) ,
290
+ } ] ,
291
+ startDate : subDays ( Date . now ( ) , 6 ) . toISOString ( ) ,
292
+ endDate : addDays ( Date . now ( ) , 16 ) . toISOString ( ) ,
293
+ }
294
+ } ;
295
+ ContestTileLiveCohort3 . args = {
296
+ ...defaultArgs ,
297
+ contestData : {
298
+ ...defaultArgs . contestData ,
299
+ cohorts : [ {
300
+ name : "cohort-1" ,
301
+ pauseTime : subDays ( Date . now ( ) , 11 ) . toISOString ( ) ,
302
+ resumeTime : null
303
+ } , {
304
+ name : "cohort-2" ,
305
+ pauseTime : subDays ( Date . now ( ) , 4 ) . toISOString ( ) ,
306
+ resumeTime : subDays ( Date . now ( ) , 8 ) . toISOString ( ) ,
307
+ } , {
308
+ name : "cohort-3" ,
309
+ pauseTime : null ,
310
+ resumeTime : subDays ( Date . now ( ) , 1 ) . toISOString ( ) ,
311
+ } ] ,
312
+ startDate : subDays ( Date . now ( ) , 16 ) . toISOString ( ) ,
313
+ endDate : addDays ( Date . now ( ) , 6 ) . toISOString ( ) ,
314
+ }
315
+ } ;
151
316
152
317
ContestTileEnded . args = {
153
318
...defaultArgs ,
0 commit comments