added channel sidebar

This commit is contained in:
Sukhamjot-Singh 2022-05-23 09:06:19 +05:30
parent d325632e83
commit 93a484d3ad
6 changed files with 65 additions and 19 deletions

View File

@ -1,25 +1,27 @@
const m = require('mithril');
const widget = require('widgets');
const Channel = () => {
return {
view: () => m('.channel'),
};
};
const sections = {
MyForums: require('channels/my_forums'),
SubscribedFroums: require('channels/subscribed_forums'),
PopularForums: require('channels/popular_forums'),
OtherForums: require('channels/other_forums')
}
const MyChannels = () => {
return {
view: () => m('.widget', [m('h3', 'My channels'), m('hr'), m(Channel)]),
};
};
const Layout = () => {
return {
view: (vnode) => m('.tab-page', [m(MyChannels)]),
};
const Layout = {
view: (vnode) =>
m('.tab-page', [
m(widget.Sidebar, {
tabs: Object.keys(sections),
baseRoute: '/channels/',
}),
m('.node-panel .', vnode.children),
]),
};
module.exports = {
view: (vnode) => {
return m(Layout);
const tab = vnode.attrs.tab;
return m(Layout, m(sections[tab]));
},
};

View File

@ -0,0 +1,11 @@
const m = require('mithril');
const Layout = () => {
return{
view: () => [
m('h2', 'My Forums')
]
};
};
module.exports = Layout();

View File

@ -0,0 +1,11 @@
const m = require('mithril');
const Layout = () => {
return{
view: () => [
m('h2', 'Other Forums')
]
};
};
module.exports = Layout();

View File

@ -0,0 +1,11 @@
const m = require('mithril');
const Layout = () => {
return{
view: () => [
m('h2', 'Popular Forums')
]
};
};
module.exports = Layout();

View File

@ -0,0 +1,11 @@
const m = require('mithril');
const Layout = () => {
return{
view: () => [
m('h2', 'Subscribed Forums')
]
};
};
module.exports = Layout();

View File

@ -53,7 +53,7 @@ const Layout = () => {
chat: '/chat',
mail: '/mail/inbox',
files: '/files/files',
channels: '/channels',
channels: '/channels/MyForums',
config: '/config/network',
},
}),
@ -94,8 +94,8 @@ m.route(document.getElementById('main'), '/', {
'/files/:tab': {
render: (v) => m(Layout, m(files, v.attrs)),
},
'/channels': {
render: () => m(Layout, m(channels)),
'/channels/:tab': {
render: (v) => m(Layout, m(channels,v.attrs)),
},
'/config/:tab': {
render: (v) => m(Layout, m(config, v.attrs)),