https://javascript.plainenglish.io/how-to-call-a-function-with-react-useeffect-only-once-when-the-component-mounts-7f6ed5191553