( name?: string, afterItemId?: string, inFolderId?: string )
| 101 | } |
| 102 | |
| 103 | export function createLLMConfigFolder( |
| 104 | name?: string, |
| 105 | afterItemId?: string, |
| 106 | inFolderId?: string |
| 107 | ): ConfigFolder { |
| 108 | const { settings } = stores |
| 109 | let parentFolderId: string | undefined |
| 110 | let order: number |
| 111 | |
| 112 | if (inFolderId) { |
| 113 | parentFolderId = inFolderId |
| 114 | const itemsInFolder = [ |
| 115 | ...settings.settings.llmConfigs.items.filter((i) => i.parentFolderId === inFolderId), |
| 116 | ...settings.settings.llmConfigs.folders.filter((f) => f.parentFolderId === inFolderId) |
| 117 | ] |
| 118 | order = itemsInFolder.length > 0 ? Math.max(...itemsInFolder.map((i) => i.order ?? 0)) + 1 : 0 |
| 119 | } else { |
| 120 | const position = prepareInsertPosition(settings.settings.llmConfigs, afterItemId) |
| 121 | parentFolderId = position.parentFolderId |
| 122 | order = position.order |
| 123 | } |
| 124 | |
| 125 | const folder: ConfigFolder = { |
| 126 | type: 'folder', |
| 127 | id: uuidv4(), |
| 128 | name: name || '新文件夹', |
| 129 | parentFolderId, |
| 130 | expanded: true, |
| 131 | order, |
| 132 | createdAt: Date.now() |
| 133 | } |
| 134 | |
| 135 | settings.addLLMConfigFolder(folder) |
| 136 | return folder |
| 137 | } |
| 138 | |
| 139 | export function updateLLMConfigFolder(id: string, updates: Partial<ConfigFolder>): void { |
| 140 | stores.settings.updateLLMConfigFolder(id, updates) |
nothing calls this directly
no test coverage detected