I'd be interested in updating this to reflect the more recent best practices in React using functional components with hooks.