diff --git a/src/client/pages/settings/import-export.vue b/src/client/pages/settings/import-export.vue index 1c69c48f20..c081c9bb4b 100644 --- a/src/client/pages/settings/import-export.vue +++ b/src/client/pages/settings/import-export.vue @@ -9,10 +9,9 @@ - {{ $t('export') }} - {{ $t('import') }} + {{ $t('export') }} + {{ $t('import') }} - @@ -21,8 +20,8 @@ import { defineComponent } from 'vue'; import { faDownload, faUpload, faBoxes } from '@fortawesome/free-solid-svg-icons'; import MkButton from '@/components/ui/button.vue'; import MkSelect from '@/components/ui/select.vue'; -import { apiUrl } from '@/config'; import * as os from '@/os'; +import { selectFile } from '@/scripts/select-file'; export default defineComponent({ components: { @@ -59,29 +58,9 @@ export default defineComponent({ }); }, - doImport() { - (this.$refs.file as any).click(); - }, - - onChangeFile() { - const [file] = Array.from((this.$refs.file as any).files); + async doImport(e) { + const file = await selectFile(e.currentTarget || e.target); - const data = new FormData(); - data.append('file', file); - data.append('i', this.$store.state.i.token); - - const promise = fetch(apiUrl + '/drive/files/create', { - method: 'POST', - body: data - }) - .then(response => response.json()) - .then(f => { - this.reqImport(f); - }); - os.promiseDialog(promise); - }, - - reqImport(file) { os.api( this.exportTarget == 'following' ? 'i/import-following' : this.exportTarget == 'user-lists' ? 'i/import-user-lists' : @@ -98,7 +77,7 @@ export default defineComponent({ text: e.message }); }); - } + }, } }); diff --git a/src/client/pages/settings/index.vue b/src/client/pages/settings/index.vue index c3cc3cc933..677229597c 100644 --- a/src/client/pages/settings/index.vue +++ b/src/client/pages/settings/index.vue @@ -20,6 +20,7 @@