diff --git a/package.json b/package.json
index a461d8076..31e60260b 100644
--- a/package.json
+++ b/package.json
@@ -216,6 +216,7 @@
"vue-router": "3.0.1",
"vue-style-loader": "4.1.2",
"vue-template-compiler": "2.5.17",
+ "vue-thin-modal": "1.1.1",
"vuedraggable": "2.16.0",
"vuex": "3.0.1",
"vuex-persistedstate": "2.5.4",
diff --git a/src/client/app/app.vue b/src/client/app/app.vue
index 7a46e7dea..011eb1466 100644
--- a/src/client/app/app.vue
+++ b/src/client/app/app.vue
@@ -1,3 +1,6 @@
-
+
+
+
+
diff --git a/src/client/app/init.ts b/src/client/app/init.ts
index cf9795740..dd31f0747 100644
--- a/src/client/app/init.ts
+++ b/src/client/app/init.ts
@@ -11,6 +11,8 @@ import VAnimateCss from 'v-animate-css';
import Element from 'element-ui';
import ElementLocaleEn from 'element-ui/lib/locale/lang/en';
import ElementLocaleJa from 'element-ui/lib/locale/lang/ja';
+import VueThinModal from 'vue-thin-modal';
+import 'vue-thin-modal/dist/vue-thin-modal.css';
import App from './app.vue';
import checkForUpdate from './common/scripts/check-for-update';
@@ -30,6 +32,9 @@ Vue.use(VModal);
Vue.use(TreeView);
Vue.use(VAnimateCss);
Vue.use(Element, { locale: elementLocale });
+Vue.use(VueThinModal, {
+ autoMountPortal: false
+});
// Register global directives
require('./common/views/directives');
diff --git a/src/client/app/mobile/api/post.ts b/src/client/app/mobile/api/post.ts
deleted file mode 100644
index 15b2f6b69..000000000
--- a/src/client/app/mobile/api/post.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-import PostForm from '../views/components/post-form.vue';
-
-export default (os) => (opts) => {
- const o = opts || {};
-
- const app = document.getElementById('app');
- app.style.display = 'none';
-
- function recover() {
- app.style.display = 'block';
- }
-
- const vm = new PostForm({
- parent: os.app,
- propsData: {
- reply: o.reply,
- renote: o.renote
- }
- }).$mount();
- vm.$once('cancel', recover);
- vm.$once('posted', recover);
- document.body.appendChild(vm.$el);
- (vm as any).focus();
-};
diff --git a/src/client/app/mobile/script.ts b/src/client/app/mobile/script.ts
index 5b9d45462..edc2b3552 100644
--- a/src/client/app/mobile/script.ts
+++ b/src/client/app/mobile/script.ts
@@ -14,7 +14,6 @@ import chooseDriveFolder from './api/choose-drive-folder';
import chooseDriveFile from './api/choose-drive-file';
import dialog from './api/dialog';
import input from './api/input';
-import post from './api/post';
import notify from './api/notify';
import MkIndex from './views/pages/index.vue';
@@ -91,7 +90,7 @@ init((launch) => {
chooseDriveFile,
dialog: dialog(os),
input,
- post: post(os),
+ post: () => alert('deprecated'),
notify
}));
}, true);
diff --git a/src/client/app/mobile/style.styl b/src/client/app/mobile/style.styl
index df8f4a8fa..f78146f8b 100644
--- a/src/client/app/mobile/style.styl
+++ b/src/client/app/mobile/style.styl
@@ -17,3 +17,13 @@ body
display flex
flex-direction column
min-height 100%
+
+.modal-backdrop
+ z-index 10000 !important
+
+.modal-content-wrapper
+ z-index 10001 !important
+
+.modal-content
+ padding 0 !important
+ background-color transparent !important
diff --git a/src/client/app/mobile/views/components/drive-file-chooser.vue b/src/client/app/mobile/views/components/drive-file-chooser.vue
index d95d5fa22..56e41e31d 100644
--- a/src/client/app/mobile/views/components/drive-file-chooser.vue
+++ b/src/client/app/mobile/views/components/drive-file-chooser.vue
@@ -48,7 +48,7 @@ export default Vue.extend({