wip
This commit is contained in:
		@@ -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);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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>
 | 
			
		||||
 
 | 
			
		||||
@@ -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>
 | 
			
		||||
 
 | 
			
		||||
@@ -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);
 | 
			
		||||
 
 | 
			
		||||
@@ -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>
 | 
			
		||||
 
 | 
			
		||||
@@ -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';
 | 
			
		||||
	},
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user