optional click prop and more componentized infinite scroll