(projectIds: string[])
| 101 | } |
| 102 | |
| 103 | export function reorderProjects(projectIds: string[]) { |
| 104 | if (projectIds.length === 0) { |
| 105 | return |
| 106 | } |
| 107 | |
| 108 | const db = getThreadStateDatabase() |
| 109 | const updateProjectOrder = db.prepare( |
| 110 | ` |
| 111 | UPDATE projects |
| 112 | SET order_index = ?, updated_at = CURRENT_TIMESTAMP |
| 113 | WHERE cwd = ? |
| 114 | `, |
| 115 | ) |
| 116 | |
| 117 | runInTransaction(db, () => { |
| 118 | projectIds.forEach((projectId, index) => { |
| 119 | updateProjectOrder.run(index, projectId) |
| 120 | }) |
| 121 | }) |
| 122 | } |
| 123 | |
| 124 | export function moveProjectToTop(projectId: string) { |
| 125 | const db = getThreadStateDatabase() |
no test coverage detected