UNPKG

ui-kit

Version:
31 lines (26 loc) 942 B
:doc This control merges query parameters. For example, if a user selects 'List' in the sidenav and then a Sort option, the query params will continually merge. @name MergeLink @prop {String} className @prop {Object} params @prop {Object} query @prop {String} to var params = this.getParams() var query = this.getQuery() var. linkProps = { // yes, this is the only time you should use getRoutes().pop().name to: props.to || this.getRoutes().pop().name, params: this.context.encodeParams(merge(params, props.params)), query: this.context.encodeParams(merge(query, props.query)) } a(className=props.className to=linkProps.to params=linkProps.params query=linkProps.query)= props.children :module export function merge(params, prev) { params = JSON.parse(JSON.stringify(params)); for(var k in prev) { if (prev[k]) params[k] = prev[k]; else delete params[k]; } return params; }