This commit is contained in:
syuilo 2018-02-22 21:23:10 +09:00
parent 4fd3192791
commit 1025077df2
6 changed files with 60 additions and 39 deletions

View file

@ -25,6 +25,7 @@ import MkSelectDrive from './views/pages/selectdrive.vue';
import MkDrive from './views/pages/drive.vue';
import MkHomeCustomize from './views/pages/home-customize.vue';
import MkMessagingRoom from './views/pages/messaging-room.vue';
import MkPost from './views/pages/post.vue';
/**
* init
@ -75,7 +76,8 @@ init(async (launch) => {
{ path: '/i/drive', component: MkDrive },
{ path: '/i/drive/folder/:folder', component: MkDrive },
{ path: '/selectdrive', component: MkSelectDrive },
{ path: '/:user', component: MkUser }
{ path: '/:user', component: MkUser },
{ path: '/:user/:post', component: MkPost }
]);
}, true);

View file

@ -38,7 +38,7 @@
</router-link>
</header>
<div class="body">
<mk-post-html v-if="p.ast" :ast="p.ast" :i="os.i"/>
<mk-post-html :class="$style.text" v-if="p.ast" :ast="p.ast" :i="os.i"/>
<mk-url-preview v-for="url in urls" :url="url" :key="url"/>
<div class="media" v-if="p.media">
<mk-images :images="p.media"/>
@ -311,17 +311,8 @@ export default Vue.extend({
> .body
padding 8px 0
> .text
cursor default
display block
margin 0
padding 0
overflow-wrap break-word
font-size 1.5em
color #717171
> .mk-url-preview
margin-top 8px
> .mk-url-preview
margin-top 8px
> footer
font-size 1.2em
@ -351,3 +342,14 @@ export default Vue.extend({
border-top 1px solid #eef0f2
</style>
<style lang="stylus" module>
.text
cursor default
display block
margin 0
padding 0
overflow-wrap break-word
font-size 1.5em
color #717171
</style>

View file

@ -13,26 +13,32 @@ import Vue from 'vue';
import Progress from '../../../common/scripts/loading';
export default Vue.extend({
props: ['postId'],
data() {
return {
fetching: true,
post: null
};
},
mounted() {
Progress.start();
watch: {
$route: 'fetch'
},
created() {
this.fetch();
},
methods: {
fetch() {
Progress.start();
this.fetching = true;
// TODO: extract the fetch step for vue-router's caching
(this as any).api('posts/show', {
post_id: this.$route.params.post
}).then(post => {
this.post = post;
this.fetching = false;
(this as any).api('posts/show', {
post_id: this.postId
}).then(post => {
this.post = post;
this.fetching = false;
Progress.done();
});
Progress.done();
});
}
}
});
</script>

View file

@ -22,6 +22,7 @@ import MkDrive from './views/pages/drive.vue';
import MkNotifications from './views/pages/notifications.vue';
import MkMessaging from './views/pages/messaging.vue';
import MkMessagingRoom from './views/pages/messaging-room.vue';
import MkPost from './views/pages/post.vue';
/**
* init
@ -57,6 +58,7 @@ init((launch) => {
{ path: '/i/drive/folder/:folder', component: MkDrive },
{ path: '/i/drive/file/:file', component: MkDrive },
{ path: '/selectdrive', component: MkSelectDrive },
{ path: '/:user', component: MkUser }
{ path: '/:user', component: MkUser },
{ path: '/:user/:post', component: MkPost }
]);
}, true);

View file

@ -16,27 +16,36 @@ import Vue from 'vue';
import Progress from '../../../common/scripts/loading';
export default Vue.extend({
props: ['postId'],
data() {
return {
fetching: true,
post: null
};
},
watch: {
$route: 'fetch'
},
created() {
this.fetch();
},
mounted() {
document.title = 'Misskey';
document.documentElement.style.background = '#313a42';
},
methods: {
fetch() {
Progress.start();
this.fetching = true;
Progress.start();
(this as any).api('posts/show', {
post_id: this.$route.params.post
}).then(post => {
this.post = post;
this.fetching = false;
(this as any).api('posts/show', {
post_id: this.postId
}).then(post => {
this.post = post;
this.fetching = false;
Progress.done();
});
Progress.done();
});
}
}
});
</script>

View file

@ -82,12 +82,12 @@ export default Vue.extend({
return age(this.user.profile.birthday);
}
},
created() {
this.fetch();
},
watch: {
$route: 'fetch'
},
created() {
this.fetch();
},
mounted() {
document.documentElement.style.background = '#313a42';
},