Require unique names for profiles

739d0c95c3b1b2d6565a58aff06ba378b3fc5428

Cohee <18619528+Cohee1207@users.noreply.github.com>

1 files changed, +7 -2Showing whitespace changes
public/scripts/extensions/connection-manager/index.js+7 -2
@@ -147,14 +147,19 @@ async function createConnectionProfile(forceName = null) {
147147
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 });
153153
154 if (!name) {154 if (!name) {
155 return null;155 return null;
156 }156 }
157157
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}