This commit is contained in:
syuilo 2018-02-22 21:39:36 +09:00
parent 84c157913a
commit 7816282318
12 changed files with 24 additions and 462 deletions

View file

@ -1,100 +0,0 @@
/**
* Desktop App Router
*/
import * as riot from 'riot';
import * as route from 'page';
import MiOS from '../common/mios';
let page = null;
export default (mios: MiOS) => {
route('/', index);
route('/selectdrive', selectDrive);
route('/i/customize-home', customizeHome);
route('/i/drive', drive);
route('/i/drive/folder/:folder', drive);
route('/i/messaging/:user', messaging);
route('/i/mentions', mentions);
route('/post::post', post);
route('/search', search);
route('/:user', user.bind(null, 'home'));
route('/:user/graphs', user.bind(null, 'graphs'));
route('/:user/:post', post);
route('*', notFound);
function index() {
mios.isSignedIn ? home() : entrance();
}
function home() {
mount(document.createElement('mk-home-page'));
}
function customizeHome() {
mount(document.createElement('mk-home-customize-page'));
}
function entrance() {
mount(document.createElement('mk-entrance'));
document.documentElement.setAttribute('data-page', 'entrance');
}
function mentions() {
const el = document.createElement('mk-home-page');
el.setAttribute('mode', 'mentions');
mount(el);
}
function search(ctx) {
const el = document.createElement('mk-search-page');
el.setAttribute('query', ctx.querystring.substr(2));
mount(el);
}
function user(page, ctx) {
const el = document.createElement('mk-user-page');
el.setAttribute('user', ctx.params.user);
el.setAttribute('page', page);
mount(el);
}
function post(ctx) {
const el = document.createElement('mk-post-page');
el.setAttribute('post', ctx.params.post);
mount(el);
}
function selectDrive() {
mount(document.createElement('mk-selectdrive-page'));
}
function drive(ctx) {
const el = document.createElement('mk-drive-page');
if (ctx.params.folder) el.setAttribute('folder', ctx.params.folder);
mount(el);
}
function messaging(ctx) {
const el = document.createElement('mk-messaging-room-page');
el.setAttribute('user', ctx.params.user);
mount(el);
}
function notFound() {
mount(document.createElement('mk-not-found'));
}
(riot as any).mixin('page', {
page: route
});
// EXEC
(route as any)();
};
function mount(content) {
document.documentElement.removeAttribute('data-page');
if (page) page.unmount();
const body = document.getElementById('app');
page = riot.mount(body.appendChild(content))[0];
}

View file

@ -26,6 +26,7 @@ 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';
import MkSearch from './views/pages/search.vue';
/**
* init
@ -76,6 +77,7 @@ init(async (launch) => {
{ path: '/i/drive', component: MkDrive },
{ path: '/i/drive/folder/:folder', component: MkDrive },
{ path: '/selectdrive', component: MkSelectDrive },
{ path: '/search', component: MkSearch },
{ path: '/:user', component: MkUser },
{ path: '/:user/:post', component: MkPost }
]);

View file

@ -10,7 +10,7 @@
</div>
<main>
<mk-post-detail v-if="user.pinned_post" :post="user.pinned_post" compact/>
<x-timeline ref="tl" :user="user"/>
<x-timeline class="timeline" ref="tl" :user="user"/>
</main>
<div>
<div ref="right">
@ -25,19 +25,19 @@
<script lang="ts">
import Vue from 'vue';
import XUserTimeline from './user.timeline.vue';
import XUserProfile from './user.profile.vue';
import XUserPhotos from './user.photos.vue';
import XUserFollowersYouKnow from './user.followers-you-know.vue';
import XUserFriends from './user.friends.vue';
import XTimeline from './user.timeline.vue';
import XProfile from './user.profile.vue';
import XPhotos from './user.photos.vue';
import XFollowersYouKnow from './user.followers-you-know.vue';
import XFriends from './user.friends.vue';
export default Vue.extend({
components: {
XUserTimeline,
XUserProfile,
XUserPhotos,
XUserFollowersYouKnow,
XUserFriends
XTimeline,
XProfile,
XPhotos,
XFollowersYouKnow,
XFriends
},
props: ['user'],
methods: {
@ -64,7 +64,7 @@ export default Vue.extend({
padding 16px
width calc(100% - 275px * 2)
> .mk-user-timeline
> .timeline
border solid 1px rgba(0, 0, 0, 0.075)
border-radius 6px

View file

@ -87,6 +87,10 @@ export default Vue.extend({
if (current > document.body.offsetHeight - 16/*遊び*/) {
this.more();
}
},
warp(date) {
this.date = date;
this.fetch();
}
}
});