diff --git a/src/web/app/desktop/views/components/index.ts b/src/web/app/desktop/views/components/index.ts index 8c490ef6da..b2de82b4d4 100644 --- a/src/web/app/desktop/views/components/index.ts +++ b/src/web/app/desktop/views/components/index.ts @@ -2,6 +2,18 @@ import Vue from 'vue'; import ui from './ui.vue'; import home from './home.vue'; +import timeline from './timeline.vue'; +import timelinePost from './timeline-post.vue'; +import timelinePostSub from './timeline-post-sub.vue'; +import subPostContent from './sub-post-content.vue'; +import window from './window.vue'; +import postFormWindow from './post-form-window.vue'; Vue.component('mk-ui', ui); Vue.component('mk-home', home); +Vue.component('mk-timeline', timeline); +Vue.component('mk-timeline-post', timelinePost); +Vue.component('mk-timeline-post-sub', timelinePostSub); +Vue.component('mk-sub-post-content', subPostContent); +Vue.component('mk-window', window); +Vue.component('post-form-window', postFormWindow); diff --git a/src/web/app/desktop/views/components/timeline-post-sub.vue b/src/web/app/desktop/views/components/timeline-post-sub.vue index 27820901f2..1209396996 100644 --- a/src/web/app/desktop/views/components/timeline-post-sub.vue +++ b/src/web/app/desktop/views/components/timeline-post-sub.vue @@ -18,13 +18,18 @@ </div> </template> -<script lang="typescript"> - import dateStringify from '../../common/scripts/date-stringify'; +<script lang="ts"> +import Vue from 'vue'; +import dateStringify from '../../../common/scripts/date-stringify'; - this.mixin('user-preview'); - - this.post = this.opts.post; - this.title = dateStringify(this.post.created_at); +export default Vue.extend({ + props: ['post'], + computed: { + title(): string { + return dateStringify(this.post.created_at); + } + } +}); </script> <style lang="stylus" scoped> diff --git a/src/web/app/desktop/views/components/timeline-post.vue b/src/web/app/desktop/views/components/timeline-post.vue index 38f5f0891f..c18cff36a8 100644 --- a/src/web/app/desktop/views/components/timeline-post.vue +++ b/src/web/app/desktop/views/components/timeline-post.vue @@ -74,6 +74,8 @@ <script lang="ts"> import Vue from 'vue'; import dateStringify from '../../../common/scripts/date-stringify'; +import MkPostFormWindow from './post-form-window.vue'; +import MkRepostFormWindow from './repost-form-window.vue'; export default Vue.extend({ props: ['post'], @@ -162,6 +164,13 @@ export default Vue.extend({ reply: this.p } }).$mount().$el); + }, + repost() { + document.body.appendChild(new MkRepostFormWindow({ + propsData: { + post: this.p + } + }).$mount().$el); } } }); @@ -169,11 +178,6 @@ export default Vue.extend({ <script lang="typescript"> -this.repost = () => { - riot.mount(document.body.appendChild(document.createElement('mk-repost-form-window')), { - post: this.p - }); -}; this.react = () => { riot.mount(document.body.appendChild(document.createElement('mk-reaction-picker')), { diff --git a/src/web/app/desktop/views/components/window.vue b/src/web/app/desktop/views/components/window.vue index 26f3cbcd34..986b151c40 100644 --- a/src/web/app/desktop/views/components/window.vue +++ b/src/web/app/desktop/views/components/window.vue @@ -63,7 +63,7 @@ export default Vue.extend({ default: 'auto' }, popoutUrl: { - type: String + type: [String, Function] } },