summaryrefslogtreecommitdiff
path: root/src/web/app/dev/router.ls
diff options
context:
space:
mode:
Diffstat (limited to 'src/web/app/dev/router.ls')
-rw-r--r--src/web/app/dev/router.ls51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/web/app/dev/router.ls b/src/web/app/dev/router.ls
new file mode 100644
index 0000000000..ac408b36ed
--- /dev/null
+++ b/src/web/app/dev/router.ls
@@ -0,0 +1,51 @@
+# Router
+#================================
+
+route = require \page
+page = null
+
+module.exports = (me) ~>
+
+ # Routing
+ #--------------------------------
+
+ route \/ index
+ route \/apps apps
+ route \/app/new new-app
+ route \/app/:app app
+ route \* not-found
+
+ # Handlers
+ #--------------------------------
+
+ function index
+ mount document.create-element \mk-index
+
+ function apps
+ mount document.create-element \mk-apps-page
+
+ function new-app
+ mount document.create-element \mk-new-app-page
+
+ function app ctx
+ document.create-element \mk-app-page
+ ..set-attribute \app ctx.params.app
+ .. |> mount
+
+ function not-found
+ mount document.create-element \mk-not-found
+
+ # Exec
+ #--------------------------------
+
+ route!
+
+# Mount
+#================================
+
+riot = require \riot
+
+function mount content
+ if page? then page.unmount!
+ body = document.get-element-by-id \app
+ page := riot.mount body.append-child content .0