summaryrefslogtreecommitdiff
path: root/src/client/app/mobile/api
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/app/mobile/api')
-rw-r--r--src/client/app/mobile/api/choose-drive-file.ts18
-rw-r--r--src/client/app/mobile/api/choose-drive-folder.ts17
-rw-r--r--src/client/app/mobile/api/dialog.ts5
-rw-r--r--src/client/app/mobile/api/input.ts8
-rw-r--r--src/client/app/mobile/api/notify.ts3
-rw-r--r--src/client/app/mobile/api/post.ts43
6 files changed, 94 insertions, 0 deletions
diff --git a/src/client/app/mobile/api/choose-drive-file.ts b/src/client/app/mobile/api/choose-drive-file.ts
new file mode 100644
index 0000000000..b1a78f2364
--- /dev/null
+++ b/src/client/app/mobile/api/choose-drive-file.ts
@@ -0,0 +1,18 @@
+import Chooser from '../views/components/drive-file-chooser.vue';
+
+export default function(opts) {
+ return new Promise((res, rej) => {
+ const o = opts || {};
+ const w = new Chooser({
+ propsData: {
+ title: o.title,
+ multiple: o.multiple,
+ initFolder: o.currentFolder
+ }
+ }).$mount();
+ w.$once('selected', file => {
+ res(file);
+ });
+ document.body.appendChild(w.$el);
+ });
+}
diff --git a/src/client/app/mobile/api/choose-drive-folder.ts b/src/client/app/mobile/api/choose-drive-folder.ts
new file mode 100644
index 0000000000..d1f97d1487
--- /dev/null
+++ b/src/client/app/mobile/api/choose-drive-folder.ts
@@ -0,0 +1,17 @@
+import Chooser from '../views/components/drive-folder-chooser.vue';
+
+export default function(opts) {
+ return new Promise((res, rej) => {
+ const o = opts || {};
+ const w = new Chooser({
+ propsData: {
+ title: o.title,
+ initFolder: o.currentFolder
+ }
+ }).$mount();
+ w.$once('selected', folder => {
+ res(folder);
+ });
+ document.body.appendChild(w.$el);
+ });
+}
diff --git a/src/client/app/mobile/api/dialog.ts b/src/client/app/mobile/api/dialog.ts
new file mode 100644
index 0000000000..a2378767be
--- /dev/null
+++ b/src/client/app/mobile/api/dialog.ts
@@ -0,0 +1,5 @@
+export default function(opts) {
+ return new Promise<string>((res, rej) => {
+ alert('dialog not implemented yet');
+ });
+}
diff --git a/src/client/app/mobile/api/input.ts b/src/client/app/mobile/api/input.ts
new file mode 100644
index 0000000000..38d0fb61eb
--- /dev/null
+++ b/src/client/app/mobile/api/input.ts
@@ -0,0 +1,8 @@
+export default function(opts) {
+ return new Promise<string>((res, rej) => {
+ const x = window.prompt(opts.title);
+ if (x) {
+ res(x);
+ }
+ });
+}
diff --git a/src/client/app/mobile/api/notify.ts b/src/client/app/mobile/api/notify.ts
new file mode 100644
index 0000000000..82780d196f
--- /dev/null
+++ b/src/client/app/mobile/api/notify.ts
@@ -0,0 +1,3 @@
+export default function(message) {
+ alert(message);
+}
diff --git a/src/client/app/mobile/api/post.ts b/src/client/app/mobile/api/post.ts
new file mode 100644
index 0000000000..841103fee1
--- /dev/null
+++ b/src/client/app/mobile/api/post.ts
@@ -0,0 +1,43 @@
+import PostForm from '../views/components/post-form.vue';
+//import RepostForm from '../views/components/repost-form.vue';
+import getPostSummary from '../../../../common/get-post-summary';
+
+export default (os) => (opts) => {
+ const o = opts || {};
+
+ if (o.repost) {
+ /*const vm = new RepostForm({
+ propsData: {
+ repost: o.repost
+ }
+ }).$mount();
+ vm.$once('cancel', recover);
+ vm.$once('post', recover);
+ document.body.appendChild(vm.$el);*/
+
+ const text = window.prompt(`「${getPostSummary(o.repost)}」をRepost`);
+ if (text == null) return;
+ os.api('posts/create', {
+ repostId: o.repost.id,
+ text: text == '' ? undefined : text
+ });
+ } else {
+ 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
+ }
+ }).$mount();
+ vm.$once('cancel', recover);
+ vm.$once('post', recover);
+ document.body.appendChild(vm.$el);
+ (vm as any).focus();
+ }
+};