Skip to content

Commit e8f4af1

Browse files
authored
fix(project-creation): Preserve user-entered project slug during onboarding
1 parent 93b7cee commit e8f4af1

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

static/app/views/projectInstall/createProject.tsx

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@ export function CreateProject() {
192192

193193
const [formData, setFormData] = useState<FormData>(initialData);
194194
const pickerKeyRef = useRef<'create-project' | 'auto-fill'>('create-project');
195+
const hasUserModifiedProjectName = useRef(false);
195196

196197
const canCreateTeam = organization.access.includes('project:admin');
197198
const isOrgMemberWithNoAccess = accessTeams.length === 0 && !canCreateTeam;
@@ -442,9 +443,7 @@ export function CreateProject() {
442443
key: value.id,
443444
});
444445

445-
const userModifiedName =
446-
!!formData.projectName && formData.projectName !== formData.platform?.key;
447-
const newName = userModifiedName ? formData.projectName : value.id;
446+
const newName = hasUserModifiedProjectName.current ? formData.projectName : value.id;
448447

449448
updateFormData('projectName', newName);
450449
},
@@ -520,7 +519,13 @@ export function CreateProject() {
520519
placeholder={t('project-slug')}
521520
autoComplete="off"
522521
value={formData.projectName}
523-
onChange={e => updateFormData('projectName', slugify(e.target.value))}
522+
onChange={e => {
523+
const slugified = slugify(e.target.value);
524+
// Track whether the user has intentionally set a custom name.
525+
// Reset if they clear the field so platform selection can fill it in again.
526+
hasUserModifiedProjectName.current = slugified !== '';
527+
updateFormData('projectName', slugified);
528+
}}
524529
/>
525530
</ProjectNameInputWrap>
526531
</div>

0 commit comments

Comments
 (0)