             .map { _ in false }
             .bindTo(refreshTrigger)
             .addDisposableTo(queryDisposeBag)
-        
+
         refreshTrigger
             .filter { $0 }
             .doOnNext { [weak self] _ in

            .map { _ in false }
            .bindTo(refreshTrigger)
            .addDisposableTo(queryDisposeBag)
        
        
        filterTrigger
            .doOnNext { [weak self] fitler in
                guard let mySelf = self else { return }

}

class SimplePaginationViewModel<Element: Decodable where Element.DecodedType == Element> : PaginationViewModel<Element, EmptyFilter> {

    init(route: RequestType, page: String = "1", query: String = "") {
        super.init(route: route, page: page, query: query, filter: nil)
    }
}

extension PaginationViewModel {

    var loading: Driver<Bool> {
        return fullloading.asDriver().skip(1).map { $0.0 }.distinctUntilChanged()
    }

    var firstPageLoading: Driver<Bool> {
        return fullloading.asDriver().filter { $0.1 == "1" }.map { $0.0 }
    }

    var emptyState: Driver<Bool> {
        return Driver.combineLatest(loading, elements.asDriver().skip(1)) { (isLoading, elements) -> Bool in
            return !isLoading && elements.isEmpty
        }
        .distinctUntilChanged()
    }

}
