<link rel="import" href="../bower_components/polymer/polymer-element.html">
<script src="firebase-paginator/firebase-paginator.js"></script>
<dom-module id="job-list">
<template>
<style include="oficio-styles">
:host {
display: block;
}
</style>
<dom-repeat items="[[searchResults]]" as="job">
<template>
<job-item job-key="[[job]]"></job-item>
</template>
</dom-repeat>
<paper-button class="white" disabled$=[[_isLastPage]] on-tap="_loadMore">Load More Jobs</paper-button>
</template>
<script>
class JobList extends ReduxMixin(Polymer.Element) {
static get is() {
return 'job-list';
}
static get properties() {
return {
_paginator: {
type: Object
}
};
}
ready(){
super.ready();
this._paginator = new FirebasePaginator(firebase.app().database().ref(`/active-jobs`), {finite: false, pageSize: 1, retainLastPage: true});
this._initPaginator(this._paginator);
this.jobs = [];
}
_initPaginator(paginator) {
paginator.listen(function(name, payload) {
if (name === 'value') {
console.log(paginator.collection);
this.set('_isLastPage', paginator.isLastPage);
var collection = paginator.collection;
var keys = Object.keys(collection);
var i = keys.length;
while (i--) {
this.push('jobs', keys[i])
}
}
}.bind(this));
}
_loadMore(){
this._paginator.next();
}
}
window.customElements.define(JobList.is, JobList);
</script>
</dom-module>
{
"-LFk7O9q8FfWBHoHqIt3" : 6,
"-LFkHJ0M6UIVP-kCUJg8" : 17,
"-LFkHWJvq5rgxoniuf22" : 14
}