You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

30 lines
732 B

tag pro-router
prop view
<self><{ "view-{view || R.view }" }>
tag pro-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 pro-ref-f < a # f - forget current params in new destination
prop view
prop params
prop go
def render
let link = go || url
<self[d:inline].active=(R.to_path! == link) href=link @click.prevent=(R.go(link); window.scrollTo(0,0))><slot>
get url
R.to_path view, params
tag pro-ref < pro-ref-f
get url
#params = params ? JSON.parse JSON.stringify(params) : {} # duplicate object
#params[k] ??= v for own k, v of R.safe_params
R.to_path view, #params