wip
This commit is contained in:
parent
84c157913a
commit
7816282318
12 changed files with 24 additions and 462 deletions
|
|
@ -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];
|
||||
}
|
||||
|
|
@ -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 }
|
||||
]);
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -87,6 +87,10 @@ export default Vue.extend({
|
|||
if (current > document.body.offsetHeight - 16/*遊び*/) {
|
||||
this.more();
|
||||
}
|
||||
},
|
||||
warp(date) {
|
||||
this.date = date;
|
||||
this.fetch();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue