| 147 | | 147 | |
| 148 | const profileForDisplay = makeFancyProfile(profile); | 148 | const profileForDisplay = makeFancyProfile(profile); |
| 149 | const template = await renderExtensionTemplateAsync(MODULE_NAME, 'profile', { profile: profileForDisplay }); | 149 | const template = await renderExtensionTemplateAsync(MODULE_NAME, 'profile', { profile: profileForDisplay }); |
| 150 | const checkName = (n) => extension_settings.connectionManager.profiles.some(p => p.name === n); | 150 | const isNameTaken = (n) => extension_settings.connectionManager.profiles.some(p => p.name === n); |
| 151 | const suggestedName = getUniqueName(collapseSpaces(`${profile.api ?? ''} ${profile.model ?? ''} - ${profile.preset ?? ''}`), checkName); | 151 | const suggestedName = getUniqueName(collapseSpaces(`${profile.api ?? ''} ${profile.model ?? ''} - ${profile.preset ?? ''}`), isNameTaken); |
| 152 | const name = forceName ?? await callGenericPopup(template, POPUP_TYPE.INPUT, suggestedName, { rows: 2 }); | 152 | const name = forceName ?? await callGenericPopup(template, POPUP_TYPE.INPUT, suggestedName, { rows: 2 }); |
| 153 | | 153 | |
| 154 | if (!name) { | 154 | if (!name) { |
| 155 | return null; | 155 | return null; |
| 156 | } | 156 | } |
| 157 | | 157 | |
| | 158 | if (isNameTaken(name)) { |
| | 159 | toastr.error('A profile with the same name already exists.'); |
| | 160 | return null; |
| | 161 | } |
| | 162 | |
| 158 | profile.name = name; | 163 | profile.name = name; |
| 159 | return profile; | 164 | return profile; |
| 160 | } | 165 | } |