Advice for new Bluesky users:
If you've memoized a react component with React.memo, make sure to use useCallback for any functions you pass it. Otherwise they won't have stable identities, and it will make the memo useless since the props will be different every time!
also, even though it might be annoying, *always* listen to eslint-plugin-react-hooks when it complains about exhaustive deps! it knows what's best. and if that makes your effect useless, well, You Might Not Need An Effect