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 @@