Skip to content

Commit 865094f

Browse files
author
Vandita Patidar
committed
quickPick changes
1 parent d226d31 commit 865094f

File tree

2 files changed

+39
-17
lines changed

2 files changed

+39
-17
lines changed

packages/core/src/awsService/appBuilder/serverlessLand/wizard.ts

Lines changed: 32 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ function promptPattern(metadataManager: MetadataManager) {
3131
throw new ToolkitError('No patterns found in metadata')
3232
}
3333

34-
return createQuickPick<string>(
35-
patterns.map((p) => ({
34+
const items = [
35+
...patterns.map((p) => ({
3636
label: p.label,
3737
detail: p.description,
3838
data: p.label,
@@ -44,13 +44,22 @@ function promptPattern(metadataManager: MetadataManager) {
4444
],
4545
})),
4646
{
47-
title: localize('AWS.serverlessLand.initWizard.pattern.prompt', 'Select a Pattern for your application'),
48-
placeholder: 'Choose a pattern for your project',
49-
buttons: createCommonButtons(),
50-
matchOnDescription: true,
51-
matchOnDetail: true,
52-
}
53-
)
47+
label: '',
48+
detail: 'Browse more on serverlessland.com',
49+
data: 'visit',
50+
alwaysShow: true,
51+
},
52+
]
53+
54+
const quickPick = createQuickPick<string>(items, {
55+
title: localize('AWS.serverlessLand.initWizard.pattern.prompt', 'Select a Pattern for your application'),
56+
placeholder: 'Choose a pattern for your project',
57+
buttons: createCommonButtons(),
58+
matchOnDescription: true,
59+
matchOnDetail: true,
60+
})
61+
62+
return quickPick
5463
}
5564

5665
function promptRuntime(metadataManager: MetadataManager, pattern: string | undefined) {
@@ -71,7 +80,7 @@ function promptRuntime(metadataManager: MetadataManager, pattern: string | undef
7180
{
7281
title: localize('AWS.serverlessLand.initWizard.runtime.prompt', 'Select Runtime'),
7382
placeholder: 'Choose a runtime for your project',
74-
buttons: [vscode.QuickInputButtons.Back],
83+
buttons: createCommonButtons(),
7584
}
7685
)
7786
}
@@ -94,24 +103,30 @@ function promptIac(metadataManager: MetadataManager, pattern: string | undefined
94103
{
95104
title: localize('AWS.serverlessLand.initWizard.iac.prompt', 'Select IaC'),
96105
placeholder: 'Choose an IaC option for your project',
97-
buttons: [vscode.QuickInputButtons.Back],
106+
buttons: createCommonButtons(),
98107
}
99108
)
100109
}
101110

102111
function promptLocation() {
103112
return createFolderPrompt(vscode.workspace.workspaceFolders ?? [], {
104113
title: localize('AWS.serverlessLand.initWizard.location.prompt', 'Select Project Location'),
105-
buttons: [vscode.QuickInputButtons.Back],
106-
browseFolderDetail: 'Select a folder for your project',
114+
buttons: createCommonButtons(),
115+
browseFolderDetail: 'Select a parent folder for your project',
107116
})
108117
}
109118

110-
function promptName() {
119+
function promptName(location: vscode.Uri | undefined) {
120+
let folderName: string
121+
if (location) {
122+
folderName = path.basename(location.fsPath)
123+
} else {
124+
folderName = ''
125+
}
111126
return createInputBox({
112127
title: localize('AWS.serverlessLand.initWizard.name.prompt', 'Enter Project Name'),
113-
placeholder: 'Enter a name for your new application',
114-
buttons: [vscode.QuickInputButtons.Back],
128+
placeholder: ` ${folderName}/: Enter a name for your new application`,
129+
buttons: createCommonButtons(),
115130
validateInput: (value: string): string | undefined => {
116131
if (!value) {
117132
return 'Application name cannot be empty'
@@ -140,6 +155,6 @@ export class CreateServerlessLandWizard extends Wizard<CreateServerlessLandWizar
140155
this.form.runtime.bindPrompter((state) => promptRuntime(this.metadataManager, state.pattern))
141156
this.form.iac.bindPrompter((state) => promptIac(this.metadataManager, state.pattern))
142157
this.form.location.bindPrompter(() => promptLocation())
143-
this.form.name.bindPrompter(() => promptName())
158+
this.form.name.bindPrompter((state) => promptName(state.location))
144159
}
145160
}

packages/core/src/shared/ui/pickerPrompter.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,13 @@ export function createQuickPick<T>(
144144
assign(mergedOptions, picker)
145145
picker.buttons = mergedOptions.buttons ?? []
146146

147+
picker.onDidAccept(() => {
148+
if (picker.selectedItems[0].data === 'visit') {
149+
void vscode.env.openExternal(vscode.Uri.parse('https://serverlessland.com/patterns'))
150+
return
151+
}
152+
})
153+
147154
picker.onDidTriggerItemButton(async (event) => {
148155
const metadataManager = MetadataManager.getInstance()
149156
if (event.button.tooltip !== 'Open in Serverless Land') {

0 commit comments

Comments
 (0)