React - State management in functional components (HOOKS)

Learn core concepts of state management in React functional components.
Write our own functional component utilising various state management patterns.
Write our own custom hook. Exploit useState and other hooks to create reusability