How to Create a Truly Reusable React Component from Scratch