This is a based on https://github.com/WebDevSimplified/react-clone.
The only changes are two use TypeScript and classes. The main limitation is that there can be only one instance each of useEffect, useMemo and useState. This can be generalized but hte goal was simply to test my understand of the current code.
Usual "as is" disclaimers.