Browse Source

move router tag & shape it to working and useful form

master
Marek Piasecki 1 year ago
parent
commit
8222543d35
  1. 39
      router_tag.imba
  2. 29
      src/router_tag.imba

39
router_tag.imba

@ -1,39 +0,0 @@
require('pro-router')
tag router
def render
<self view=R.view> <{ view }>
tag switch
prop key
prop disabled
css cursor:pointer
def render
<self .activated=R.params[key] .disabled=disabled @click.if(!disabled)=R.toggle(key)> <slot>
tag ref < a
prop view
prop target
prop go
def render
<self .active=active? href=link @click.prevent.if(!active?)=R.go(href)> <slot>
def active?
R.to_path == link
get link do #link ||= go || url
#tu skonczylem:
def url
if target
let attributes = L.reduce L.concat({}, target), do |map, el|
map[el:type] = el:id
map
R.to_path view, L.defaults attributes || {}, R:safe_params
tag not_found
def render do <self> "Page not found :/"

29
src/router_tag.imba

@ -0,0 +1,29 @@
tag toggle
prop param
prop disabled
css cursor:pointer cursor.disabled:default
def render
<self.activated=R.params[param] .disabled=disabled @click.if(!disabled)=R.toggle(param)><slot>
tag ref-f # f - forget current params in new destination
prop view
prop target = {}
prop go
def render
let link = go || url
<self[d:inline]><a.active=(R.to_path! == link) href=link @click.prevent=R.go(link)><slot>
get url
R.to_path view, target
tag ref < ref-f
get url
#target = JSON.parse JSON.stringify(target) # duplicate object
#target[k] ||= v for own k, v of R.safe_params
R.to_path view, #target
tag not_found
<self><h1> "Page not found :("
Loading…
Cancel
Save