Skip to content

Commit d59b35e

Browse files
author
Guillaume Chau
committedMar 6, 2018
feat(ui): ProjectCreate saves formData
1 parent 48a23aa commit d59b35e

File tree

2 files changed

+69
-21
lines changed

2 files changed

+69
-21
lines changed
 

‎packages/@vue/cli-ui/src/style/main.styl

+9
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,15 @@ body,
2121
> *
2222
space-between-x(12px)
2323

24+
&.space-between
25+
justify-content space-between
26+
&.center
27+
justify-content center
28+
&.start
29+
justify-content flex-start
30+
&.end
31+
justify-content flex-end
32+
2433
.cta-text
2534
margin 12px
2635
color lighten($vue-color-dark, 40%)

‎packages/@vue/cli-ui/src/views/ProjectCreate.vue

+60-21
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
title="Project folder"
1717
>
1818
<VueInput
19-
v-model="folder"
19+
v-model="formData.folder"
2020
placeholder="my-app"
2121
icon-left="folder"
2222
class="big"
@@ -32,7 +32,7 @@
3232
title="Package manager"
3333
>
3434
<VueSelect
35-
v-model="packageManager"
35+
v-model="formData.packageManager"
3636
>
3737
<VueSelectButton
3838
:value="undefined"
@@ -53,7 +53,7 @@
5353
title="Additional options"
5454
>
5555
<VueSwitch
56-
v-model="force"
56+
v-model="formData.force"
5757
class="extend-left"
5858
>
5959
Overwrite target directory if it exists
@@ -64,10 +64,10 @@
6464

6565
<div class="actions-bar">
6666
<VueButton
67-
:to="{ name: 'project-select' }"
6867
icon-left="close"
6968
label="Cancel"
7069
class="big"
70+
@click="showCancel = true"
7171
/>
7272

7373
<VueButton
@@ -100,14 +100,14 @@
100100
v-for="preset of projectCreation.presets"
101101
:key="preset.id"
102102
:preset="preset"
103-
:selected="preset.id === selectedPreset"
103+
:selected="formData.selectedPreset === preset.id"
104104
@click.native="selectPreset(preset.id)"
105105
/>
106106
</template>
107107

108108
<ProjectPresetItem
109109
:preset="remotePresetInfo"
110-
:selected="selectedPreset === 'remote'"
110+
:selected="formData.selectedPreset === 'remote'"
111111
@click.native="selectPreset('remote')"
112112
/>
113113
</div>
@@ -124,7 +124,7 @@
124124
icon-right="arrow_forward"
125125
label="Next"
126126
class="big primary"
127-
:disabled="!selectedPreset"
127+
:disabled="!presetValid"
128128
@click="next()"
129129
/>
130130
</div>
@@ -219,10 +219,10 @@
219219
<StatusBar cwd/>
220220

221221
<VueModal
222-
v-if="remotePreset.openModal"
222+
v-if="showRemotePreset"
223223
title="Configure Remote preset"
224224
class="medium"
225-
@close="remotePreset.openModal = false"
225+
@close="showRemotePreset = false"
226226
>
227227
<div class="default-body">
228228
<div class="vue-empty">
@@ -231,6 +231,32 @@
231231
</div>
232232
</div>
233233
</VueModal>
234+
235+
<VueModal
236+
v-if="showCancel"
237+
title="Cancel and reset project creation"
238+
class="small"
239+
@close="showCancel = false"
240+
>
241+
<div class="default-body">
242+
Are you sure you want to cancel the project creation?
243+
</div>
244+
245+
<div slot="footer" class="actions end">
246+
<VueButton
247+
label="Go back"
248+
@click="showCancel = false"
249+
/>
250+
251+
<VueButton
252+
:to="{ name: 'project-select' }"
253+
label="Clear project"
254+
icon-left="delete_forever"
255+
class="danger"
256+
@click="cancel()"
257+
/>
258+
</div>
259+
</VueModal>
234260
</div>
235261
</template>
236262

@@ -242,6 +268,20 @@ import StepWizard from '../components/StepWizard'
242268
import PROJECT_CREATION from '../graphql/projectCreation.gql'
243269
import PROJECT_INIT_CREATE from '../graphql/projectInitCreate.gql'
244270
271+
function formDataFactory () {
272+
return {
273+
folder: '',
274+
force: false,
275+
packageManager: undefined,
276+
selectedPreset: null,
277+
remotePreset: {
278+
url: ''
279+
}
280+
}
281+
}
282+
283+
let formData = formDataFactory()
284+
245285
export default {
246286
components: {
247287
ProjectPresetItem,
@@ -251,15 +291,10 @@ export default {
251291
252292
data () {
253293
return {
254-
folder: 'test-app',
255-
force: false,
256-
packageManager: undefined,
294+
formData: formData,
257295
projectCreation: null,
258-
selectedPreset: null,
259-
remotePreset: {
260-
url: '',
261-
openModal: false
262-
}
296+
showCancel: false,
297+
showRemotePreset: false
263298
}
264299
},
265300
@@ -269,11 +304,11 @@ export default {
269304
270305
computed: {
271306
detailsValid () {
272-
return !!this.folder
307+
return !!this.formData.folder
273308
},
274309
275310
presetValid () {
276-
return !!this.selectedPreset
311+
return !!this.formData.selectedPreset
277312
},
278313
279314
remotePresetInfo () {
@@ -285,13 +320,17 @@ export default {
285320
},
286321
287322
methods: {
323+
cancel () {
324+
formData = formDataFactory()
325+
},
326+
288327
selectPreset (id) {
289328
if (id === 'remote') {
290-
this.remotePreset.openModal = true
329+
this.showRemotePreset = true
291330
return
292331
}
293332
294-
this.selectedPreset = id
333+
this.formData.selectedPreset = id
295334
}
296335
}
297336
}

0 commit comments

Comments
 (0)
Please sign in to comment.