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