summaryrefslogtreecommitdiff
path: root/src/web/app/mobile
diff options
context:
space:
mode:
authorsyuilo⭐️ <Syuilotan@yahoo.co.jp>2017-02-18 18:12:04 +0900
committerGitHub <noreply@github.com>2017-02-18 18:12:04 +0900
commit5305f3dde2b2ef2e36b09548452ca5c1a547092a (patch)
tree9961c66c4de99d5a4bf590f378e0474df28fef15 /src/web/app/mobile
parent壁紙廃止 (diff)
parentRemove unused dependency (diff)
downloadmisskey-5305f3dde2b2ef2e36b09548452ca5c1a547092a.tar.gz
misskey-5305f3dde2b2ef2e36b09548452ca5c1a547092a.tar.bz2
misskey-5305f3dde2b2ef2e36b09548452ca5c1a547092a.zip
Merge pull request #179 from syuilo/no-ls
No ls
Diffstat (limited to 'src/web/app/mobile')
-rw-r--r--src/web/app/mobile/mixins.js25
-rw-r--r--src/web/app/mobile/mixins.ls19
-rw-r--r--src/web/app/mobile/router.js136
-rw-r--r--src/web/app/mobile/router.ls138
-rw-r--r--src/web/app/mobile/script.js6
-rw-r--r--src/web/app/mobile/scripts/stream.js11
-rw-r--r--src/web/app/mobile/scripts/stream.ls13
-rw-r--r--src/web/app/mobile/scripts/ui.js7
-rw-r--r--src/web/app/mobile/scripts/ui.ls6
9 files changed, 182 insertions, 179 deletions
diff --git a/src/web/app/mobile/mixins.js b/src/web/app/mobile/mixins.js
new file mode 100644
index 0000000000..98601a1072
--- /dev/null
+++ b/src/web/app/mobile/mixins.js
@@ -0,0 +1,25 @@
+const riot = require('riot');
+
+module.exports = me => {
+ if (me) {
+ require('./scripts/stream')(me);
+ }
+
+ require('./scripts/ui');
+
+ riot.mixin('open-post-form', {
+ openPostForm: opts => {
+ const app = document.getElementById('app');
+ app.style.display = 'none';
+
+ function recover() {
+ app.style.display = 'block';
+ }
+
+ const form = riot.mount(document.body.appendChild(document.createElement('mk-post-form')), opts)[0];
+ form
+ .on('cancel', recover)
+ .on('post', recover);
+ }
+ });
+};
diff --git a/src/web/app/mobile/mixins.ls b/src/web/app/mobile/mixins.ls
deleted file mode 100644
index 902774f91a..0000000000
--- a/src/web/app/mobile/mixins.ls
+++ /dev/null
@@ -1,19 +0,0 @@
-riot = require \riot
-
-module.exports = (me) ~>
- if me?
- (require './scripts/stream.ls') me
-
- require './scripts/ui.ls'
-
- riot.mixin \open-post-form do
- open-post-form: (opts) ->
- app = document.get-element-by-id \app
- app.style.display = \none
- form = document.body.append-child document.create-element \mk-post-form
- form = riot.mount form, opts .0
- form.on \cancel recover
- form.on \post recover
-
- function recover
- app.style.display = \block
diff --git a/src/web/app/mobile/router.js b/src/web/app/mobile/router.js
new file mode 100644
index 0000000000..df4871f292
--- /dev/null
+++ b/src/web/app/mobile/router.js
@@ -0,0 +1,136 @@
+/**
+ * Mobile App Router
+ */
+
+const riot = require('riot');
+const route = require('page');
+let page = null;
+
+module.exports = me => {
+ route('/', index);
+ route('/i/notifications', notifications);
+ route('/i/messaging', messaging);
+ route('/i/messaging/:username', messaging);
+ route('/i/drive', drive);
+ route('/i/drive/folder/:folder', drive);
+ route('/i/drive/file/:file', drive);
+ route('/i/settings', settings);
+ route('/i/settings/signin-history', settingsSignin);
+ route('/i/settings/api', settingsApi);
+ route('/i/settings/twitter', settingsTwitter);
+ route('/i/settings/authorized-apps', settingsAuthorizedApps);
+ route('/post/new', newPost);
+ route('/post::post', post);
+ route('/search::query', search);
+ route('/:user', user.bind(null, 'posts'));
+ route('/:user/graphs', user.bind(null, 'graphs'));
+ route('/:user/followers', userFollowers);
+ route('/:user/following', userFollowing);
+ route('/:user/:post', post);
+ route('*', notFound);
+
+ function index() {
+ me ? home() : entrance();
+ }
+
+ function home() {
+ mount(document.createElement('mk-home-page'));
+ }
+
+ function entrance() {
+ mount(document.createElement('mk-entrance'));
+ }
+
+ function notifications() {
+ mount(document.createElement('mk-notifications-page'));
+ }
+
+ function messaging(ctx) {
+ if (ctx.params.username) {
+ const el = document.createElement('mk-messaging-room-page');
+ el.setAttribute('username', ctx.params.username);
+ mount(el);
+ } else {
+ mount(document.createElement('mk-messaging-page'));
+ }
+ }
+
+ function newPost() {
+ mount(document.createElement('mk-new-post-page'));
+ }
+
+ function settings() {
+ mount(document.createElement('mk-settings-page'));
+ }
+
+ function settingsSignin() {
+ mount(document.createElement('mk-signin-history-page'));
+ }
+
+ function settingsApi() {
+ mount(document.createElement('mk-api-info-page'));
+ }
+
+ function settingsTwitter() {
+ mount(document.createElement('mk-twitter-setting-page'));
+ }
+
+ function settingsAuthorizedApps() {
+ mount(document.createElement('mk-authorized-apps-page'));
+ }
+
+ function search(ctx) {
+ const el = document.createElement('mk-search-page');
+ el.setAttribute('query', ctx.params.query);
+ 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 userFollowing(ctx) {
+ const el = document.createElement('mk-user-following-page');
+ el.setAttribute('user', ctx.params.user);
+ mount(el);
+ }
+
+ function userFollowers(ctx) {
+ const el = document.createElement('mk-user-followers-page');
+ el.setAttribute('user', ctx.params.user);
+ mount(el);
+ }
+
+ function post(ctx) {
+ const el = document.createElement('mk-post-page');
+ el.setAttribute('post', ctx.params.post);
+ mount(el);
+ }
+
+ function drive(ctx) {
+ const el = document.createElement('mk-drive-page');
+ if (ctx.params.folder) el.setAttribute('folder', ctx.params.folder);
+ if (ctx.params.file) el.setAttribute('file', ctx.params.file);
+ mount(el);
+ }
+
+ function notFound() {
+ mount(document.createElement('mk-not-found'));
+ }
+
+ riot.mixin('page', {
+ page: route
+ });
+
+ // EXEC
+ route();
+};
+
+function mount(content) {
+ if (page) page.unmount();
+ const body = document.getElementById('app');
+ page = riot.mount(body.appendChild(content))[0];
+}
diff --git a/src/web/app/mobile/router.ls b/src/web/app/mobile/router.ls
deleted file mode 100644
index 3c0cb42236..0000000000
--- a/src/web/app/mobile/router.ls
+++ /dev/null
@@ -1,138 +0,0 @@
-# Router
-#================================
-
-riot = require \riot
-route = require \page
-page = null
-
-module.exports = (me) ~>
-
- # Routing
- #--------------------------------
-
- route \/ index
- route \/i/notifications notifications
- route \/i/messaging messaging
- route \/i/messaging/:username messaging
- route \/i/drive drive
- route \/i/drive/folder/:folder drive
- route \/i/drive/file/:file drive
- route \/i/settings settings
- route \/i/settings/signin-history settings-signin
- route \/i/settings/api settings-api
- route \/i/settings/twitter settings-twitter
- route \/i/settings/authorized-apps settings-authorized-apps
- route \/post/new new-post
- route \/post::post post
- route \/search::query search
- route \/:user user.bind null \posts
- route \/:user/graphs user.bind null \graphs
- route \/:user/followers user-followers
- route \/:user/following user-following
- route \/:user/:post post
- route \* not-found
-
- # Handlers
- #--------------------------------
-
- # /
- function index
- if me? then home! else entrance!
-
- # ホーム
- function home
- mount document.create-element \mk-home-page
-
- # 玄関
- function entrance
- mount document.create-element \mk-entrance
-
- # 通知
- function notifications
- mount document.create-element \mk-notifications-page
-
- # メッセージ
- function messaging ctx
- if ctx.params.username
- p = document.create-element \mk-messaging-room-page
- p.set-attribute \username ctx.params.username
- mount p
- else
- mount document.create-element \mk-messaging-page
-
- # 新規投稿
- function new-post
- mount document.create-element \mk-new-post-page
-
- # 設定
- function settings
- mount document.create-element \mk-settings-page
- function settings-signin
- mount document.create-element \mk-signin-history-page
- function settings-api
- mount document.create-element \mk-api-info-page
- function settings-twitter
- mount document.create-element \mk-twitter-setting-page
- function settings-authorized-apps
- mount document.create-element \mk-authorized-apps-page
-
- # 検索
- function search ctx
- document.create-element \mk-search-page
- ..set-attribute \query ctx.params.query
- .. |> mount
-
- # ユーザー
- function user page, ctx
- document.create-element \mk-user-page
- ..set-attribute \user ctx.params.user
- ..set-attribute \page page
- .. |> mount
-
- # フォロー一覧
- function user-following ctx
- document.create-element \mk-user-following-page
- ..set-attribute \user ctx.params.user
- .. |> mount
-
- # フォロワー一覧
- function user-followers ctx
- document.create-element \mk-user-followers-page
- ..set-attribute \user ctx.params.user
- .. |> mount
-
- # 投稿詳細ページ
- function post ctx
- document.create-element \mk-post-page
- ..set-attribute \post ctx.params.post
- .. |> mount
-
- # ドライブ
- function drive ctx
- p = document.create-element \mk-drive-page
- if ctx.params.folder then p.set-attribute \folder ctx.params.folder
- if ctx.params.file then p.set-attribute \file ctx.params.file
- mount p
-
- # not found
- function not-found
- mount document.create-element \mk-not-found
-
- # Register mixin
- #--------------------------------
-
- riot.mixin \page do
- page: route
-
- # Exec
- #--------------------------------
-
- route!
-
-# Mount
-#================================
-
-function mount content
- if page? then page.unmount!
- body = document.get-element-by-id \app
- page := riot.mount body.append-child content .0
diff --git a/src/web/app/mobile/script.js b/src/web/app/mobile/script.js
index e22b4b6432..6f732da9cc 100644
--- a/src/web/app/mobile/script.js
+++ b/src/web/app/mobile/script.js
@@ -3,9 +3,9 @@
*/
require('./tags');
-const boot = require('../boot.js');
-const mixins = require('./mixins.ls');
-const route = require('./router.ls');
+const boot = require('../boot');
+const mixins = require('./mixins');
+const route = require('./router');
/**
* Boot
diff --git a/src/web/app/mobile/scripts/stream.js b/src/web/app/mobile/scripts/stream.js
new file mode 100644
index 0000000000..e12788f60b
--- /dev/null
+++ b/src/web/app/mobile/scripts/stream.js
@@ -0,0 +1,11 @@
+const stream = require('../../common/scripts/stream');
+const riot = require('riot');
+
+module.exports = me => {
+ const s = stream(me);
+ riot.mixin('stream', {
+ stream: s.event,
+ getStreamState: s.getState,
+ streamStateEv: s.stateEv
+ });
+};
diff --git a/src/web/app/mobile/scripts/stream.ls b/src/web/app/mobile/scripts/stream.ls
deleted file mode 100644
index b7810b49ae..0000000000
--- a/src/web/app/mobile/scripts/stream.ls
+++ /dev/null
@@ -1,13 +0,0 @@
-# Stream
-#================================
-
-stream = require '../../common/scripts/stream.ls'
-riot = require \riot
-
-module.exports = (me) ~>
- s = stream me
-
- riot.mixin \stream do
- stream: s.event
- get-stream-state: s.get-state
- stream-state-ev: s.state-ev
diff --git a/src/web/app/mobile/scripts/ui.js b/src/web/app/mobile/scripts/ui.js
new file mode 100644
index 0000000000..51ab6acd2d
--- /dev/null
+++ b/src/web/app/mobile/scripts/ui.js
@@ -0,0 +1,7 @@
+const riot = require('riot');
+
+const ui = riot.observable();
+
+riot.mixin('ui', {
+ ui: ui
+});
diff --git a/src/web/app/mobile/scripts/ui.ls b/src/web/app/mobile/scripts/ui.ls
deleted file mode 100644
index aa94a8b052..0000000000
--- a/src/web/app/mobile/scripts/ui.ls
+++ /dev/null
@@ -1,6 +0,0 @@
-riot = require \riot
-
-ui = riot.observable!
-
-riot.mixin \ui do
- ui: ui