The App.tsx had a bunch of separate useState calls which would cause unneccesary re-renders of the entire app. This became apparent after adding the global progress bar, since it caused even more re-renders to the point of being unusable.