Skip to content

Commit 4d9a092

Browse files
author
Guillaume Chau
committedJun 14, 2018
feat(ui): project create: folder already exists warning
1 parent 04d76a2 commit 4d9a092

File tree

5 files changed

+38
-6
lines changed

5 files changed

+38
-6
lines changed
 

‎packages/@vue/cli-ui/locales/en.json

+3-1
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,8 @@
190190
"label": "Project folder",
191191
"placeholder": "my-app",
192192
"tooltip": "Change base folder",
193-
"action": "Select this folder"
193+
"action": "Select this folder",
194+
"folder-exists": "This folder already exists"
194195
},
195196
"manager": {
196197
"label": "Package manager",
@@ -199,6 +200,7 @@
199200
"options": {
200201
"label": "Additional options",
201202
"force": "Overwrite target folder if it exists",
203+
"git-title": "Git repository",
202204
"git": "Initialize git repository (recommended)",
203205
"git-commit-message": "Initial commit message (optional)"
204206
}

‎packages/@vue/cli-ui/src/graphql-api/connectors/folders.js

+5-3
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,11 @@ const pkgCache = new LRU({
1010
const cwd = require('./cwd')
1111

1212
function isDirectory (file) {
13+
file = file.replace(/\\/g, path.sep)
1314
try {
14-
return fs.statSync(file.path).isDirectory()
15+
return fs.statSync(file).isDirectory()
1516
} catch (e) {
16-
console.warn(e.message)
17+
if (process.env.VUE_APP_CLI_UI_DEV) console.warn(e.message)
1718
}
1819
return false
1920
}
@@ -26,7 +27,7 @@ async function list (base, context) {
2627
name: file
2728
})
2829
).filter(
29-
file => isDirectory(file)
30+
file => isDirectory(file.path)
3031
)
3132
}
3233

@@ -110,6 +111,7 @@ async function deleteFolder (file) {
110111
}
111112

112113
module.exports = {
114+
isDirectory,
113115
getCurrent,
114116
list,
115117
open,

‎packages/@vue/cli-ui/src/graphql-api/schema/folder.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ exports.types = gql`
77
extend type Query {
88
folderCurrent: Folder
99
foldersFavorite: [Folder]
10+
folderExists (file: String!): Boolean
1011
}
1112
1213
extend type Mutation {
@@ -34,7 +35,8 @@ exports.resolvers = {
3435

3536
Query: {
3637
folderCurrent: (root, args, context) => folders.getCurrent(args, context),
37-
foldersFavorite: (root, args, context) => folders.listFavorite(context)
38+
foldersFavorite: (root, args, context) => folders.listFavorite(context),
39+
folderExists: (root, { file }, context) => folders.isDirectory(file)
3840
},
3941

4042
Mutation: {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
query folderExists ($file: String!) {
2+
folderExists(file: $file)
3+
}

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

+24-1
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,24 @@
4949
}"
5050
/>
5151
</div>
52+
53+
<ApolloQuery
54+
v-if="formData.folder"
55+
:query="require('../graphql/folderExists.gql')"
56+
:variables="{
57+
file: `${cwd}/${formData.folder}`
58+
}"
59+
fetch-policy="no-cache"
60+
>
61+
<div
62+
slot-scope="{ result: { data } }"
63+
v-if="data && data.folderExists"
64+
class="vue-ui-text warning banner"
65+
>
66+
<VueIcon icon="warning" class="big"/>
67+
<span>{{ $t('views.project-create.tabs.details.form.folder.folder-exists') }}</span>
68+
</div>
69+
</ApolloQuery>
5270
</div>
5371
</VueFormField>
5472

@@ -84,7 +102,9 @@
84102
</VueSwitch>
85103
</VueFormField>
86104

87-
<VueFormField>
105+
<VueFormField
106+
:title="$t('views.project-create.tabs.details.form.options.git-title')"
107+
>
88108
<VueSwitch
89109
v-model="formData.enableGit"
90110
class="extend-left git"
@@ -568,6 +588,9 @@ export default {
568588
width 100%
569589
margin 42px auto
570590
591+
.vue-ui-text.banner
592+
margin-top 6px
593+
571594
.project-path
572595
h-box()
573596
box-center()

0 commit comments

Comments
 (0)
Please sign in to comment.