Custom pull to refresh table view component