mirror of
https://github.com/flarum/core.git
synced 2025-10-11 23:14:29 +02:00
Replace Ember app with Mithril app
This commit is contained in:
43
js/forum/src/initializers/boot.js
Normal file
43
js/forum/src/initializers/boot.js
Normal file
@@ -0,0 +1,43 @@
|
||||
import ScrollListener from 'flarum/utils/scroll-listener';
|
||||
import History from 'flarum/utils/history';
|
||||
import Pane from 'flarum/utils/pane';
|
||||
import mapRoutes from 'flarum/utils/map-routes';
|
||||
|
||||
import BackButton from 'flarum/components/back-button';
|
||||
import HeaderPrimary from 'flarum/components/header-primary';
|
||||
import HeaderSecondary from 'flarum/components/header-secondary';
|
||||
import FooterPrimary from 'flarum/components/footer-primary';
|
||||
import FooterSecondary from 'flarum/components/footer-secondary';
|
||||
import Composer from 'flarum/components/composer';
|
||||
import Modal from 'flarum/components/modal';
|
||||
import Alerts from 'flarum/components/alerts';
|
||||
import SignupModal from 'flarum/components/signup-modal';
|
||||
import LoginModal from 'flarum/components/login-modal';
|
||||
|
||||
export default function(app) {
|
||||
var id = id => document.getElementById(id);
|
||||
|
||||
app.history = new History();
|
||||
app.pane = new Pane(id('page'));
|
||||
app.cache = {};
|
||||
|
||||
app.signup = () => app.modal.show(new SignupModal());
|
||||
app.login = () => app.modal.show(new LoginModal());
|
||||
|
||||
m.mount(id('back-control'), BackButton.component({ className: 'back-control', drawer: true }));
|
||||
m.mount(id('back-button'), BackButton.component());
|
||||
|
||||
m.mount(id('header-primary'), HeaderPrimary.component());
|
||||
m.mount(id('header-secondary'), HeaderSecondary.component());
|
||||
m.mount(id('footer-primary'), FooterPrimary.component());
|
||||
m.mount(id('footer-secondary'), FooterSecondary.component());
|
||||
|
||||
app.composer = m.mount(id('composer'), Composer.component());
|
||||
app.modal = m.mount(id('modal'), Modal.component());
|
||||
app.alerts = m.mount(id('alerts'), Alerts.component());
|
||||
|
||||
m.route.mode = 'hash';
|
||||
m.route(id('content'), '/', mapRoutes(app.routes));
|
||||
|
||||
new ScrollListener(top => $('body').toggleClass('scrolled', top > 0)).start();
|
||||
}
|
21
js/forum/src/initializers/components.js
Normal file
21
js/forum/src/initializers/components.js
Normal file
@@ -0,0 +1,21 @@
|
||||
import PostComment from 'flarum/components/post-comment';
|
||||
import PostDiscussionRenamed from 'flarum/components/post-discussion-renamed';
|
||||
import ActivityPost from 'flarum/components/activity-post';
|
||||
import ActivityJoin from 'flarum/components/activity-join';
|
||||
import NotificationDiscussionRenamed from 'flarum/components/notification-discussion-renamed';
|
||||
|
||||
export default function(app) {
|
||||
app.postComponentRegistry = {
|
||||
comment: PostComment,
|
||||
discussionRenamed: PostDiscussionRenamed
|
||||
};
|
||||
|
||||
app.activityComponentRegistry = {
|
||||
post: ActivityPost,
|
||||
join: ActivityJoin
|
||||
};
|
||||
|
||||
app.notificationComponentRegistry = {
|
||||
discussionRenamed: NotificationDiscussionRenamed
|
||||
};
|
||||
}
|
21
js/forum/src/initializers/routes.js
Normal file
21
js/forum/src/initializers/routes.js
Normal file
@@ -0,0 +1,21 @@
|
||||
import IndexPage from 'flarum/components/index-page';
|
||||
import DiscussionPage from 'flarum/components/discussion-page';
|
||||
import ActivityPage from 'flarum/components/activity-page';
|
||||
import SettingsPage from 'flarum/components/settings-page';
|
||||
|
||||
export default function(app) {
|
||||
app.routes = {
|
||||
'index': ['/', IndexPage.component()],
|
||||
'index.filter': ['/:filter', IndexPage.component()],
|
||||
|
||||
'discussion': ['/d/:id/:slug', DiscussionPage.component()],
|
||||
'discussion.near': ['/d/:id/:slug/:near', DiscussionPage.component()],
|
||||
|
||||
'user': ['/u/:username', ActivityPage.component()],
|
||||
'user.activity': ['/u/:username', ActivityPage.component()],
|
||||
'user.discussions': ['/u/:username/discussions', ActivityPage.component({filter: 'discussion'})],
|
||||
'user.posts': ['/u/:username/posts', ActivityPage.component({filter: 'post'})],
|
||||
|
||||
'settings': ['/settings', SettingsPage.component()]
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user