diff --git a/src/components/Schema.vue b/src/components/Schema.vue
index 0bd281b..bdefa9f 100644
--- a/src/components/Schema.vue
+++ b/src/components/Schema.vue
@@ -8,14 +8,11 @@
{{ dbName }}
-
-
+
{
- this.$store.commit('saveSchema', { dbName, schema })
+ fu.getFileFromUser('.db,.sqlite,.sqlite3')
+ .then(file => {
+ return this.$db.loadDb(file)
+ })
+ .then((schema) => {
+ this.$store.commit('saveSchema', schema)
})
}
}
diff --git a/src/fileUtils.js b/src/fileUtils.js
index a572424..4eff444 100644
--- a/src/fileUtils.js
+++ b/src/fileUtils.js
@@ -20,27 +20,36 @@ export default {
* it will be an unsettled promise. But it's grabbed by
* the garbage collector (tested with FinalizationRegistry).
*/
- importFile () {
- return new Promise((resolve, reject) => {
+ getFileFromUser (type) {
+ return new Promise(resolve => {
const uploader = document.createElement('input')
uploader.type = 'file'
- uploader.accept = '.json'
+ uploader.accept = type
uploader.addEventListener('change', () => {
const file = uploader.files[0]
- const reader = new FileReader()
- reader.onload = (e) => {
- uploader.remove()
- resolve(e.target.result)
- }
- reader.readAsText(file)
+ uploader.remove()
+ resolve(file)
})
uploader.click()
})
},
+ importFile () {
+ return this.getFileFromUser('.json')
+ .then(file => {
+ return new Promise((resolve, reject) => {
+ const reader = new FileReader()
+ reader.onload = e => {
+ resolve(e.target.result)
+ }
+ reader.readAsText(file)
+ })
+ })
+ },
+
readFile (path) {
return fetch(path)
}