Skip to content

Commit 3e1b7e1

Browse files
Align new project skip link behaviour with new project button (#10382)
* Align new project skip link behaviour with new project button * Rename method, convert to async await
1 parent 7114176 commit 3e1b7e1

File tree

4 files changed

+16
-16
lines changed

4 files changed

+16
-16
lines changed

localtypings/pxteditor.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -926,6 +926,7 @@ declare namespace pxt.editor {
926926

927927
newEmptyProject(name?: string, documentation?: string, preferredEditor?: string): void;
928928
newProject(options?: pxt.editor.ProjectCreationOptions): void;
929+
newUserCreatedProject(firstProject: boolean): Promise<void>;
929930
createProjectAsync(options: pxt.editor.ProjectCreationOptions): Promise<void>;
930931
importExampleAsync(options: ExampleImportOptions): Promise<void>;
931932
showScriptManager(): void;

webapp/src/accessibility.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,9 +104,11 @@ export class HomeAccessibilityMenu extends data.Component<HomeAccessibilityMenuP
104104
this.toggleHighContrast = this.toggleHighContrast.bind(this);
105105
}
106106

107-
newProject() {
107+
async newProject(): Promise<void> {
108108
pxt.tickEvent("accmenu.home.new", undefined, { interactiveConsent: true });
109-
this.props.parent.newProject();
109+
const headers = this.getData(`headers:`);
110+
const firstProject = (!headers || headers?.length == 0);
111+
return this.props.parent.newUserCreatedProject(firstProject)
110112
}
111113

112114
importProjectDialog() {

webapp/src/app.tsx

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2914,6 +2914,16 @@ export class ProjectView
29142914
});
29152915
}
29162916

2917+
async newUserCreatedProject(firstProject: boolean): Promise<void> {
2918+
if (pxt.appTarget.appTheme.nameProjectFirst || pxt.appTarget.appTheme.chooseLanguageRestrictionOnNewProject) {
2919+
const projectSettings = await this.askForProjectCreationOptionsAsync()
2920+
const { name, languageRestriction } = projectSettings
2921+
this.newProject({ name, languageRestriction, firstProject });
2922+
} else {
2923+
this.newProject({ firstProject });
2924+
}
2925+
}
2926+
29172927
async createProjectAsync(options: ProjectCreationOptions): Promise<void> {
29182928
pxt.perf.measureStart(Measurements.CreateProjectAsync)
29192929
this.setSideDoc(undefined);

webapp/src/projects.tsx

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -625,19 +625,6 @@ export class ProjectsCarousel extends data.Component<ProjectsCarouselProps, Proj
625625
return headers;
626626
}
627627

628-
newProject(firstProject?: boolean) {
629-
pxt.tickEvent("projects.new", undefined, { interactiveConsent: true });
630-
if (pxt.appTarget.appTheme.nameProjectFirst || pxt.appTarget.appTheme.chooseLanguageRestrictionOnNewProject) {
631-
this.props.parent.askForProjectCreationOptionsAsync()
632-
.then(projectSettings => {
633-
const { name, languageRestriction } = projectSettings
634-
this.props.parent.newProject({ name, languageRestriction, firstProject });
635-
})
636-
} else {
637-
this.props.parent.newProject({ firstProject });
638-
}
639-
}
640-
641628
showScriptManager() {
642629
pxt.tickEvent("projects.showscriptmanager", undefined, { interactiveConsent: true });
643630
this.props.parent.showScriptManager();
@@ -768,7 +755,7 @@ export class ProjectsCarousel extends data.Component<ProjectsCarouselProps, Proj
768755
const isFirstProject = (!headers || headers?.length == 0);
769756
return <carousel.Carousel tickId="myprojects" bleedPercent={20}>
770757
{showNewProject && <div role="button" className="ui card link buttoncard newprojectcard" title={lf("Creates a new empty project")}
771-
onClick={() => this.newProject(isFirstProject)} onKeyDown={fireClickOnEnter} >
758+
onClick={() => this.props.parent.newUserCreatedProject(isFirstProject)} onKeyDown={fireClickOnEnter} >
772759
<div className="content">
773760
<sui.Icon icon="huge add circle" />
774761
<span className="header">{lf("New Project")}</span>

0 commit comments

Comments
 (0)