| 17 | export type WorkflowSortOption = 'title' | 'lastUpdated'; |
| 18 | |
| 19 | export function sortWorkflows<T extends RenderableWorkflow>( |
| 20 | items: T[], |
| 21 | sort: WorkflowSortOption |
| 22 | ): T[] { |
| 23 | return [...items].sort((a, b) => { |
| 24 | if (sort === 'lastUpdated') { |
| 25 | const dateA = a.lastUpdated ? new Date(a.lastUpdated).getTime() : 0; |
| 26 | const dateB = b.lastUpdated ? new Date(b.lastUpdated).getTime() : 0; |
| 27 | return dateB - dateA; |
| 28 | } |
| 29 | |
| 30 | return a.title.localeCompare(b.title); |
| 31 | }); |
| 32 | } |
| 33 | |
| 34 | export function renderWorkflowsHtml( |
| 35 | items: RenderableWorkflow[] |