diff options
Diffstat (limited to 'src/web/app/dev/router.ts')
| -rw-r--r-- | src/web/app/dev/router.ts | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/web/app/dev/router.ts b/src/web/app/dev/router.ts new file mode 100644 index 0000000000..532ec23c73 --- /dev/null +++ b/src/web/app/dev/router.ts @@ -0,0 +1,42 @@ +import * as riot from 'riot'; +import * as route from 'page'; +let page = null; + +export default me => { + route('/', index); + route('/apps', apps); + route('/app/new', newApp); + route('/app/:app', app); + route('*', notFound); + + function index() { + mount(document.createElement('mk-index')); + } + + function apps() { + mount(document.createElement('mk-apps-page')); + } + + function newApp() { + mount(document.createElement('mk-new-app-page')); + } + + function app(ctx) { + const el = document.createElement('mk-app-page'); + el.setAttribute('app', ctx.params.app); + mount(el); + } + + function notFound() { + mount(document.createElement('mk-not-found')); + } + + // EXEC + (route as any)(); +}; + +function mount(content) { + if (page) page.unmount(); + const body = document.getElementById('app'); + page = riot.mount(body.appendChild(content))[0]; +} |