A full featured blog in RiotJS
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.
 
 
 
 
 
 

115 lines
2.1 KiB

<categoryfilter>
<div
class="categorybar"
style={
{
"min-height": "500px",
"max-height" : "500px"
}
}
>
<h4
if={opts.name}
style={{"text-align" : "center"}}
>
{ opts.name }
</h4>
<div
class="fewer-categories"
>
<button
style={moreStyle}
class="btn btn-primary branded"
if={start > 0}
onclick={up}
>
<i
class="fa fa-angle-double-up"
aria-hidden="true"
>
</i>
</button>
</div>
<ul>
<!-- menu header text -->
<li class="divider">
</li>
<!-- menu item -->
<div each={item in items.slice(start, start+pagesize)} class="menu-item menu-element">
<button
class="btn btn-primary category-button"
style={highlight(item)}
onclick={parent.opts.onfilter(item)}
>
{ item }
</button>
<yield/>
</div>
</ul>
<div
class="more-categories"
>
<button
if={items.length > pagesize}
style={moreStyle}
class="btn btn-primary branded"
onclick={down}
>
<i
class="fa fa-angle-double-down"
aria-hidden="true"
>
</i>
</button>
</div>
</div>
<script>
var self = this;
self.start = 0;
self.pagesize = 10;
self.items = self.opts.items;
preventDefault(ev) {
ev.preventDefault;
}
self.moreStyle = {
"margin" : "auto"
};
up() {
if (self.start >= self.pagesize) {
self.update({"start" : self.start - self.pagesize});
}
}
down() {
console.log(self.pagesize);
console.log(self.start);
console.log(self.items.length);
if (self.start+self.pagesize < (self.items.length)) {
self.update({"start" : self.start + self.pagesize});
}
}
highlight(item) {
var styles = {
"text-transform" : "capitalize",
"background-color" : "white"
};
if (this.opts.category == item) {
styles["background-color"] = "rgba(103, 173, 219, 0.40)";
}
return styles;
}
</script>
</categoryfilter>