    (fn [{:keys [props state refs]}]
      (let [rows-per-page (:rows-per-page @state)
            current-page (:current-page @state)
-           num-total (:num-rows props)
-           num-pages (js/Math.ceil (/ num-total rows-per-page))
-           num-onClick (fn [n] #(swap! state assoc :current-page n))
-           page-range (create-page-range current-page num-pages)
+           num-rows-visible (:num-rows-visible props)
+           num-pages (js/Math.ceil (/ num-rows-visible rows-per-page))
            allow-prev (> current-page 1)
            allow-next (< current-page num-pages)
-           right-num (min num-total (* current-page rows-per-page))
+           right-num (min num-rows-visible (* current-page rows-per-page))
            left-num (if (zero? right-num) 0 (inc (* (dec current-page) rows-per-page)))]
        [:div {:style {:border "1px solid #ebebeb" :boxShadow "-3px -6px 23px -7px #ebebeb inset"}}
         [:div {:style {:fontSize 13 :lineHeight 1.5 :padding "0px 48px" :verticalAlign "middle"}}
 
-         [:div {:style {:float "left" :display "inline-block" :width "33.33%" :padding "2.15em 0em" :verticalAlign "middle"}}
-          [:b {} (str left-num " - " right-num)] (str " of " (pluralize num-total " result"))]
+         [:div {:style {:float "left" :display "inline-block" :width "33.33%" :padding "2.15em 0em"
+                        :verticalAlign "middle"}}
+          [:b {} (str left-num " - " right-num)] (str " of " (pluralize num-rows-visible " result")
+                                                   (when-not (= num-rows-visible (:num-total-rows props))
+                                                     (str " (filtered from " (:num-total-rows props) " total)")))]
 
          (style/create-unselectable :div {:style {:float "left" :display "inline-block" :width "33.33%"
                                                   :padding "1.6em 0em" :verticalAlign "middle" :textAlign "center"}}

                                    :color (if selected? "white" (:button-blue style/colors))
                                    :borderRadius (when selected? "100%")
                                    :cursor (when-not selected? "pointer")}
                            :onClick (when-not selected? (num-onClick n))}
                      n]))
              page-range)]

           [:div {:style {:display "inline-block" :padding "0.55em 0.9em"
                          :color (if allow-next (:button-blue style/colors) (:border-gray style/colors))

     (let [paginator-above (= :above (:paginator props))
           paginator-below (= :below (:paginator props))
           paginator [Paginator {:ref "paginator"
                                 :num-rows-visible (count (:filtered-data @state))
                                 :num-total-rows (count (:data props))
                                 :onChange #(react/call :handle-pagination-change this)}]]
       [:div {}
        (when (:filterable? props)
