Sharkey/src/client/app/mobile/api/post.ts

44 lines
1 KiB
TypeScript
Raw Normal View History

2018-02-21 19:15:46 +02:00
import PostForm from '../views/components/post-form.vue';
2018-02-21 19:22:10 +02:00
//import RepostForm from '../views/components/repost-form.vue';
2018-04-01 22:15:27 +03:00
import getPostSummary from '../../../../misc/get-post-summary';
2018-02-21 19:15:46 +02:00
2018-02-21 19:22:10 +02:00
export default (os) => (opts) => {
2018-02-21 19:15:46 +02:00
const o = opts || {};
2018-02-21 19:00:30 +02:00
2018-02-21 19:15:46 +02:00
if (o.repost) {
2018-02-21 19:22:10 +02:00
/*const vm = new RepostForm({
2018-02-21 19:15:46 +02:00
propsData: {
repost: o.repost
}
}).$mount();
vm.$once('cancel', recover);
vm.$once('post', recover);
2018-02-21 19:22:10 +02:00
document.body.appendChild(vm.$el);*/
const text = window.prompt(`${getPostSummary(o.repost)}」をRepost`);
if (text == null) return;
os.api('posts/create', {
2018-03-29 08:48:47 +03:00
repostId: o.repost.id,
2018-02-21 19:22:10 +02:00
text: text == '' ? undefined : text
});
2018-02-21 19:15:46 +02:00
} else {
2018-02-21 19:22:10 +02:00
const app = document.getElementById('app');
app.style.display = 'none';
function recover() {
app.style.display = 'block';
}
2018-02-21 19:15:46 +02:00
const vm = new PostForm({
2018-02-27 18:13:42 +02:00
parent: os.app,
2018-02-21 19:15:46 +02:00
propsData: {
reply: o.reply
}
}).$mount();
vm.$once('cancel', recover);
vm.$once('post', recover);
document.body.appendChild(vm.$el);
2018-02-22 22:43:19 +02:00
(vm as any).focus();
2018-02-21 19:15:46 +02:00
}
2018-02-21 19:22:10 +02:00
};