Skip to content

Commit 747cb19

Browse files
author
Walker Leite
committed
feat(component): add delete process
1 parent 637a1e2 commit 747cb19

4 files changed

Lines changed: 46 additions & 3 deletions

File tree

package-lock.json

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
"eslint": "^4.11.0",
3838
"eslint-plugin-vue": "beta",
3939
"firebase": "^4.8.1",
40+
"font-awesome": "^4.7.0",
4041
"karma-chai": "^0.1.0",
4142
"karma-phantomjs-launcher": "^1.0.4",
4243
"karma-phantomjs-shim": "^1.5.0",

src/ic-firebase-uploader/ic-firebase-uploader.vue

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
@click="onFileLinkClick(file.ref, $event)">
99
{{file.ref.name}}
1010
</a>
11+
<i class="fa fa-times" @click="onFileDeleteClick(file.ref)"></i>
1112
</li>
1213
</ul>
1314
<input
@@ -79,6 +80,19 @@ export default {
7980
getDownloadURL: fileRef.getDownloadURL,
8081
})
8182
},
83+
onFileDeleteClick(fileRef) {
84+
/**
85+
* This event is called before a file delete begins
86+
* call doDelete to continue. Properties in the
87+
* payload: fullPath, doDelete.
88+
* @event delete
89+
* @type {Object}
90+
*/
91+
this.$emit('delete', {
92+
fullPath: fileRef.fullPath,
93+
doDelete: this.getDeleteFn(fileRef)
94+
})
95+
},
8296
onChangeLoader(event) {
8397
const files = event.target.files
8498
const curFilesLength = this.sentFiles.length + files.length
@@ -139,8 +153,27 @@ export default {
139153
})
140154
.catch(err => this.$emit('error', err))
141155
}
142-
}
143-
}
156+
},
157+
getDeleteFn(fileRef) {
158+
const sentIndex = this.sentFiles.indexOf(fileRef)
159+
return () => {
160+
fileRef.delete()
161+
.then(() => {
162+
this.sentFiles.splice(sentIndex, 1)
163+
/**
164+
* This event is called after a file deletion ends.
165+
* Properties in the payload: fullPath.
166+
* @event deleted
167+
* @type {Object}
168+
*/
169+
this.$emit('deleted', {
170+
fullPath: fileRef.fullPath,
171+
})
172+
})
173+
.catch(err => this.$emit('error', err))
174+
}
175+
},
176+
},
144177
}
145178
</script>
146179

styleguide.config.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,5 +33,8 @@ module.exports = {
3333
},
3434
devtool: 'inline-source-map'
3535
},
36-
serverPort: 6062
36+
serverPort: 6062,
37+
require: [
38+
'font-awesome/css/font-awesome.css',
39+
]
3740
};

0 commit comments

Comments
 (0)