diff --git a/router_tag.imba b/router_tag.imba deleted file mode 100644 index 550bac6..0000000 --- a/router_tag.imba +++ /dev/null @@ -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 :/" diff --git a/src/router_tag.imba b/src/router_tag.imba new file mode 100644 index 0000000..058901c --- /dev/null +++ b/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 :(" \ No newline at end of file