https://blog.ohirunewani.com/posts/q-usecallback-vs-outside-component/