@@ -109,171 +109,173 @@ export function TaskRunsTable({
109
109
return (
110
110
< Table variant = { variant } className = "max-h-full overflow-y-auto" >
111
111
< TableHeader >
112
- { allowSelection && (
113
- < TableHeaderCell className = "pl-3 pr-0" >
114
- { runs . length > 0 && (
115
- < Checkbox
116
- checked = { hasAll ( runs . map ( ( r ) => r . id ) ) }
117
- onChange = { ( element ) => {
118
- const ids = runs . map ( ( r ) => r . id ) ;
119
- const checked = element . currentTarget . checked ;
120
- if ( checked ) {
121
- select ( ids ) ;
122
- } else {
123
- deselect ( ids ) ;
124
- }
125
- } }
126
- ref = { ( r ) => {
127
- checkboxes . current [ 0 ] = r ;
128
- } }
129
- onKeyDown = { ( event ) => navigateCheckboxes ( event , 0 ) }
130
- />
131
- ) }
112
+ < TableRow >
113
+ { allowSelection && (
114
+ < TableHeaderCell className = "pl-3 pr-0" >
115
+ { runs . length > 0 && (
116
+ < Checkbox
117
+ checked = { hasAll ( runs . map ( ( r ) => r . id ) ) }
118
+ onChange = { ( element ) => {
119
+ const ids = runs . map ( ( r ) => r . id ) ;
120
+ const checked = element . currentTarget . checked ;
121
+ if ( checked ) {
122
+ select ( ids ) ;
123
+ } else {
124
+ deselect ( ids ) ;
125
+ }
126
+ } }
127
+ ref = { ( r ) => {
128
+ checkboxes . current [ 0 ] = r ;
129
+ } }
130
+ onKeyDown = { ( event ) => navigateCheckboxes ( event , 0 ) }
131
+ />
132
+ ) }
133
+ </ TableHeaderCell >
134
+ ) }
135
+ < TableHeaderCell alignment = "right" > Run #</ TableHeaderCell >
136
+ < TableHeaderCell > Env</ TableHeaderCell >
137
+ < TableHeaderCell > Task</ TableHeaderCell >
138
+ < TableHeaderCell > Version</ TableHeaderCell >
139
+ < TableHeaderCell
140
+ tooltip = {
141
+ < div className = "flex flex-col divide-y divide-grid-dimmed" >
142
+ { filterableTaskRunStatuses . map ( ( status ) => (
143
+ < div
144
+ key = { status }
145
+ className = "grid grid-cols-[8rem_1fr] gap-x-2 py-2 first:pt-1 last:pb-1"
146
+ >
147
+ < div className = "mb-0.5 flex items-center gap-1.5 whitespace-nowrap" >
148
+ < TaskRunStatusCombo status = { status } />
149
+ </ div >
150
+ < Paragraph variant = "extra-small" className = "!text-wrap text-text-dimmed" >
151
+ { descriptionForTaskRunStatus ( status ) }
152
+ </ Paragraph >
153
+ </ div >
154
+ ) ) }
155
+ </ div >
156
+ }
157
+ >
158
+ Status
132
159
</ TableHeaderCell >
133
- ) }
134
- < TableHeaderCell alignment = "right" > Run #</ TableHeaderCell >
135
- < TableHeaderCell > Env</ TableHeaderCell >
136
- < TableHeaderCell > Task</ TableHeaderCell >
137
- < TableHeaderCell > Version</ TableHeaderCell >
138
- < TableHeaderCell
139
- tooltip = {
140
- < div className = "flex flex-col divide-y divide-grid-dimmed" >
141
- { filterableTaskRunStatuses . map ( ( status ) => (
142
- < div
143
- key = { status }
144
- className = "grid grid-cols-[8rem_1fr] gap-x-2 py-2 first:pt-1 last:pb-1"
145
- >
146
- < div className = "mb-0.5 flex items-center gap-1.5 whitespace-nowrap" >
147
- < TaskRunStatusCombo status = { status } />
160
+ < TableHeaderCell > Started</ TableHeaderCell >
161
+ < TableHeaderCell
162
+ colSpan = { 3 }
163
+ tooltip = {
164
+ < div className = "flex max-w-xs flex-col gap-4 p-1" >
165
+ < div >
166
+ < div className = "mb-0.5 flex items-center gap-1.5" >
167
+ < RectangleStackIcon className = "size-4 text-text-dimmed" />
168
+ < Header3 > Queued duration</ Header3 >
148
169
</ div >
149
- < Paragraph variant = "extra- small" className = "!text-wrap text-text-dimmed" >
150
- { descriptionForTaskRunStatus ( status ) }
170
+ < Paragraph variant = "small" className = "!text-wrap text-text-dimmed" >
171
+ The amount of time from when the run was created to it starting to run.
151
172
</ Paragraph >
152
173
</ div >
153
- ) ) }
154
- </ div >
155
- }
156
- >
157
- Status
158
- </ TableHeaderCell >
159
- < TableHeaderCell > Started</ TableHeaderCell >
160
- < TableHeaderCell
161
- colSpan = { 3 }
162
- tooltip = {
163
- < div className = "flex max-w-xs flex-col gap-4 p-1" >
164
- < div >
165
- < div className = "mb-0.5 flex items-center gap-1.5" >
166
- < RectangleStackIcon className = "size-4 text-text-dimmed" />
167
- < Header3 > Queued duration</ Header3 >
174
+ < div >
175
+ < div className = "mb-0.5 flex items-center gap-1.5" >
176
+ < ClockIcon className = "size-4 text-blue-500" /> < Header3 > Run duration</ Header3 >
177
+ </ div >
178
+ < Paragraph variant = "small" className = "!text-wrap text-text-dimmed" >
179
+ The total amount of time from the run starting to it finishing. This includes
180
+ all time spent waiting.
181
+ </ Paragraph >
182
+ </ div >
183
+ < div >
184
+ < div className = "mb-0.5 flex items-center gap-1.5" >
185
+ < CpuChipIcon className = "size-4 text-success" />
186
+ < Header3 > Compute duration</ Header3 >
187
+ </ div >
188
+ < Paragraph variant = "small" className = "!text-wrap text-text-dimmed" >
189
+ The amount of compute time used in the run. This does not include time spent
190
+ waiting.
191
+ </ Paragraph >
168
192
</ div >
169
- < Paragraph variant = "small" className = "!text-wrap text-text-dimmed" >
170
- The amount of time from when the run was created to it starting to run.
193
+ </ div >
194
+ }
195
+ >
196
+ Duration
197
+ </ TableHeaderCell >
198
+ { showCompute && (
199
+ < >
200
+ < TableHeaderCell > Compute</ TableHeaderCell >
201
+ </ >
202
+ ) }
203
+ < TableHeaderCell > Test</ TableHeaderCell >
204
+ < TableHeaderCell > Created at</ TableHeaderCell >
205
+ < TableHeaderCell
206
+ tooltip = {
207
+ < div className = "max-w-xs p-1" >
208
+ < Paragraph variant = "small" className = "!text-wrap text-text-dimmed" spacing >
209
+ When you want to trigger a task now, but have it run at a later time, you can use
210
+ the delay option.
171
211
</ Paragraph >
212
+ < Paragraph variant = "small" className = "!text-wrap text-text-dimmed" spacing >
213
+ Runs that are delayed and have not been enqueued yet will display in the dashboard
214
+ with a “Delayed” status.
215
+ </ Paragraph >
216
+ < LinkButton
217
+ to = { docsPath ( "v3/triggering" ) }
218
+ variant = "docs/small"
219
+ LeadingIcon = { BookOpenIcon }
220
+ className = "mt-3"
221
+ >
222
+ Read docs
223
+ </ LinkButton >
172
224
</ div >
173
- < div >
174
- < div className = "mb-0.5 flex items-center gap-1.5" >
175
- < ClockIcon className = "size-4 text-blue-500" /> < Header3 > Run duration</ Header3 >
176
- </ div >
177
- < Paragraph variant = "small" className = "!text-wrap text-text-dimmed" >
178
- The total amount of time from the run starting to it finishing. This includes all
179
- time spent waiting.
225
+ }
226
+ >
227
+ Delayed until
228
+ </ TableHeaderCell >
229
+ < TableHeaderCell
230
+ tooltip = {
231
+ < div className = "max-w-xs p-1" >
232
+ < Paragraph variant = "small" className = "!text-wrap text-text-dimmed" spacing >
233
+ You can set a TTL (time to live) when triggering a task, which will automatically
234
+ expire the run if it hasn’t started within the specified time.
180
235
</ Paragraph >
236
+ < Paragraph variant = "small" className = "!text-wrap text-text-dimmed" spacing >
237
+ All runs in development have a default ttl of 10 minutes. You can disable this by
238
+ setting the ttl option.
239
+ </ Paragraph >
240
+ < LinkButton
241
+ to = { docsPath ( "v3/triggering" ) }
242
+ variant = "docs/small"
243
+ LeadingIcon = { BookOpenIcon }
244
+ className = "mt-3"
245
+ >
246
+ Read docs
247
+ </ LinkButton >
181
248
</ div >
182
- < div >
183
- < div className = "mb-0.5 flex items-center gap-1.5" >
184
- < CpuChipIcon className = "size-4 text-success" />
185
- < Header3 > Compute duration</ Header3 >
186
- </ div >
187
- < Paragraph variant = "small" className = "!text-wrap text-text-dimmed" >
188
- The amount of compute time used in the run. This does not include time spent
189
- waiting.
249
+ }
250
+ >
251
+ TTL
252
+ </ TableHeaderCell >
253
+ < TableHeaderCell
254
+ tooltip = {
255
+ < div className = "max-w-xs p-1" >
256
+ < Paragraph variant = "small" className = "!text-wrap text-text-dimmed" spacing >
257
+ You can add tags to a run and then filter runs using them.
190
258
</ Paragraph >
259
+ < Paragraph variant = "small" className = "!text-wrap text-text-dimmed" spacing >
260
+ You can add tags when triggering a run or inside the run function.
261
+ </ Paragraph >
262
+ < LinkButton
263
+ to = { docsPath ( "v3/tags" ) }
264
+ variant = "docs/small"
265
+ LeadingIcon = { BookOpenIcon }
266
+ className = "mt-3"
267
+ >
268
+ Read docs
269
+ </ LinkButton >
191
270
</ div >
192
- </ div >
193
- }
194
- >
195
- Duration
196
- </ TableHeaderCell >
197
- { showCompute && (
198
- < >
199
- < TableHeaderCell > Compute</ TableHeaderCell >
200
- </ >
201
- ) }
202
- < TableHeaderCell > Test</ TableHeaderCell >
203
- < TableHeaderCell > Created at</ TableHeaderCell >
204
- < TableHeaderCell
205
- tooltip = {
206
- < div className = "max-w-xs p-1" >
207
- < Paragraph variant = "small" className = "!text-wrap text-text-dimmed" spacing >
208
- When you want to trigger a task now, but have it run at a later time, you can use
209
- the delay option.
210
- </ Paragraph >
211
- < Paragraph variant = "small" className = "!text-wrap text-text-dimmed" spacing >
212
- Runs that are delayed and have not been enqueued yet will display in the dashboard
213
- with a “Delayed” status.
214
- </ Paragraph >
215
- < LinkButton
216
- to = { docsPath ( "v3/triggering" ) }
217
- variant = "docs/small"
218
- LeadingIcon = { BookOpenIcon }
219
- className = "mt-3"
220
- >
221
- Read docs
222
- </ LinkButton >
223
- </ div >
224
- }
225
- >
226
- Delayed until
227
- </ TableHeaderCell >
228
- < TableHeaderCell
229
- tooltip = {
230
- < div className = "max-w-xs p-1" >
231
- < Paragraph variant = "small" className = "!text-wrap text-text-dimmed" spacing >
232
- You can set a TTL (time to live) when triggering a task, which will automatically
233
- expire the run if it hasn’t started within the specified time.
234
- </ Paragraph >
235
- < Paragraph variant = "small" className = "!text-wrap text-text-dimmed" spacing >
236
- All runs in development have a default ttl of 10 minutes. You can disable this by
237
- setting the ttl option.
238
- </ Paragraph >
239
- < LinkButton
240
- to = { docsPath ( "v3/triggering" ) }
241
- variant = "docs/small"
242
- LeadingIcon = { BookOpenIcon }
243
- className = "mt-3"
244
- >
245
- Read docs
246
- </ LinkButton >
247
- </ div >
248
- }
249
- >
250
- TTL
251
- </ TableHeaderCell >
252
- < TableHeaderCell
253
- tooltip = {
254
- < div className = "max-w-xs p-1" >
255
- < Paragraph variant = "small" className = "!text-wrap text-text-dimmed" spacing >
256
- You can add tags to a run and then filter runs using them.
257
- </ Paragraph >
258
- < Paragraph variant = "small" className = "!text-wrap text-text-dimmed" spacing >
259
- You can add tags when triggering a run or inside the run function.
260
- </ Paragraph >
261
- < LinkButton
262
- to = { docsPath ( "v3/tags" ) }
263
- variant = "docs/small"
264
- LeadingIcon = { BookOpenIcon }
265
- className = "mt-3"
266
- >
267
- Read docs
268
- </ LinkButton >
269
- </ div >
270
- }
271
- >
272
- Tags
273
- </ TableHeaderCell >
274
- < TableHeaderCell >
275
- < span className = "sr-only" > Go to page</ span >
276
- </ TableHeaderCell >
271
+ }
272
+ >
273
+ Tags
274
+ </ TableHeaderCell >
275
+ < TableHeaderCell >
276
+ < span className = "sr-only" > Go to page</ span >
277
+ </ TableHeaderCell >
278
+ </ TableRow >
277
279
</ TableHeader >
278
280
< TableBody >
279
281
{ total === 0 && ! hasFilters ? (
0 commit comments