( tree: ConfigTree<T>, afterItemId?: string )
| 13 | |
| 14 | // 计算新项目的插入位置 |
| 15 | function prepareInsertPosition<T extends ConfigItemBase>( |
| 16 | tree: ConfigTree<T>, |
| 17 | afterItemId?: string |
| 18 | ): { parentFolderId: string | undefined; order: number } { |
| 19 | let referenceItem: T | ConfigFolder | undefined |
| 20 | if (afterItemId) { |
| 21 | referenceItem = |
| 22 | tree.items.find((item) => item.id === afterItemId) || |
| 23 | tree.folders.find((f) => f.id === afterItemId) |
| 24 | } |
| 25 | |
| 26 | let parentFolderId: string | undefined |
| 27 | let newOrder: number |
| 28 | |
| 29 | if (referenceItem) { |
| 30 | parentFolderId = referenceItem.parentFolderId |
| 31 | newOrder = (referenceItem.order ?? 0) + 1 |
| 32 | } else { |
| 33 | parentFolderId = undefined |
| 34 | newOrder = 0 |
| 35 | } |
| 36 | |
| 37 | return { parentFolderId, order: newOrder } |
| 38 | } |
| 39 | |
| 40 | // ==================== LLM 配置 ==================== |
| 41 |
no outgoing calls
no test coverage detected