()
| 137 | } |
| 138 | |
| 139 | export function useModelConfigs(): UseModelConfigsResult { |
| 140 | const { settings, batchUpdateModelConfigs, batchUpdateModelConfigFolders } = useSettingsStore() |
| 141 | const tree = useConfigTree(settings.modelConfigs) |
| 142 | |
| 143 | const batchUpdateItemsOrder = useCallback( |
| 144 | (items: (ModelConfig | ConfigFolder)[], parentFolderId?: string) => { |
| 145 | const itemUpdates: Array<{ id: string; changes: Partial<ModelConfig> }> = [] |
| 146 | const folderUpdates: Array<{ id: string; changes: Partial<ConfigFolder> }> = [] |
| 147 | |
| 148 | items.forEach((item, index) => { |
| 149 | if ('systemPrompt' in item) { |
| 150 | itemUpdates.push({ id: item.id, changes: { order: index, parentFolderId } }) |
| 151 | } else { |
| 152 | folderUpdates.push({ id: item.id, changes: { order: index, parentFolderId } }) |
| 153 | } |
| 154 | }) |
| 155 | |
| 156 | if (itemUpdates.length) batchUpdateModelConfigs(itemUpdates) |
| 157 | if (folderUpdates.length) batchUpdateModelConfigFolders(folderUpdates) |
| 158 | }, |
| 159 | [batchUpdateModelConfigs, batchUpdateModelConfigFolders] |
| 160 | ) |
| 161 | |
| 162 | return { |
| 163 | ...tree, |
| 164 | batchUpdateItemsOrder, |
| 165 | createConfig: settingsService.createModelConfig, |
| 166 | updateConfig: settingsService.updateModelConfig, |
| 167 | deleteConfig: settingsService.deleteModelConfig, |
| 168 | copyConfig: settingsService.copyModelConfig, |
| 169 | createFolder: settingsService.createModelConfigFolder, |
| 170 | updateFolder: settingsService.updateModelConfigFolder, |
| 171 | deleteFolder: settingsService.deleteModelConfigFolder, |
| 172 | clearFolder: settingsService.clearModelConfigFolder, |
| 173 | toggleFolderExpanded: settingsService.toggleModelConfigFolderExpanded |
| 174 | } |
| 175 | } |
no test coverage detected