diff options
| author | s-ol <s-ol@users.noreply.github.com> | 2018-10-27 13:47:30 +0000 |
|---|---|---|
| committer | s-ol <s-ol@users.noreply.github.com> | 2018-10-27 13:47:30 +0000 |
| commit | 69ca33d50acd618152281cc52b844ab26c5bf9e9 (patch) | |
| tree | fd07ffed9fe470ea62ba222769d532a5ab7d2185 | |
| parent | pause twisted preview (diff) | |
| download | mmm-69ca33d50acd618152281cc52b844ab26c5bf9e9.tar.gz mmm-69ca33d50acd618152281cc52b844ab26c5bf9e9.zip | |
fix & harden navigation
| -rw-r--r-- | app/mmmfs/browser.moon | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/app/mmmfs/browser.moon b/app/mmmfs/browser.moon index 822b957..de5bc7f 100644 --- a/app/mmmfs/browser.moon +++ b/app/mmmfs/browser.moon @@ -1,10 +1,7 @@ import ReactiveVar, text, elements from require 'lib.component' import div, span, a, select, option from elements -append = (list, val) -> - list = [x for x in *list] - table.insert list, val - list +limit = (list, num) -> [v for i,v in ipairs list when i <= num] class Browser new: (@root) => @@ -53,13 +50,12 @@ class Browser \append a 'root', href: '#', onclick: (_, e) -> e\preventDefault! @navigate {} - link = {} - for name in *path - link = append link, name + + for i,name in ipairs path \append '/' \append a name, href: '#', onclick: (_, e) -> e\preventDefault! - @navigate link + @navigate limit path, i span 'view property: ', @active\map (fileder) -> onchange = (_, e) -> @@ -80,10 +76,16 @@ class Browser }, @prop\map (prop) -> active = @active\get! - val, key = active\get prop.name, prop.type - res = CONVERT 'mmm/dom', val, key - res or span "cannot display!", style: { color: '#f00' } + ok, res = pcall -> + val, key = active\get prop.name, prop.type + CONVERT 'mmm/dom', val, key + + if ok and res + res + else + warn "error: ", res unless ok + span "cannot display!", style: { color: '#f00' } } } |
