( name?: string, afterItemId?: string, inFolderId?: string )
| 219 | } |
| 220 | |
| 221 | export function createModelConfigFolder( |
| 222 | name?: string, |
| 223 | afterItemId?: string, |
| 224 | inFolderId?: string |
| 225 | ): ConfigFolder { |
| 226 | const { settings } = stores |
| 227 | let parentFolderId: string | undefined |
| 228 | let order: number |
| 229 | |
| 230 | if (inFolderId) { |
| 231 | parentFolderId = inFolderId |
| 232 | const itemsInFolder = [ |
| 233 | ...settings.settings.modelConfigs.items.filter((i) => i.parentFolderId === inFolderId), |
| 234 | ...settings.settings.modelConfigs.folders.filter((f) => f.parentFolderId === inFolderId) |
| 235 | ] |
| 236 | order = itemsInFolder.length > 0 ? Math.max(...itemsInFolder.map((i) => i.order ?? 0)) + 1 : 0 |
| 237 | } else { |
| 238 | const position = prepareInsertPosition(settings.settings.modelConfigs, afterItemId) |
| 239 | parentFolderId = position.parentFolderId |
| 240 | order = position.order |
| 241 | } |
| 242 | |
| 243 | const folder: ConfigFolder = { |
| 244 | type: 'folder', |
| 245 | id: uuidv4(), |
| 246 | name: name || '新文件夹', |
| 247 | parentFolderId, |
| 248 | expanded: true, |
| 249 | order, |
| 250 | createdAt: Date.now() |
| 251 | } |
| 252 | |
| 253 | settings.addModelConfigFolder(folder) |
| 254 | return folder |
| 255 | } |
| 256 | |
| 257 | export function updateModelConfigFolder(id: string, updates: Partial<ConfigFolder>): void { |
| 258 | stores.settings.updateModelConfigFolder(id, updates) |
nothing calls this directly
no test coverage detected