Personally, I tend to prefer a feature oriented structure... where each feature is where directories are separated, and subdirectories created as necessary.
Each feature containing it's own context/state, components, tests and data fetching... this can be registered with core routing and used in concert with more generalized components/wrappers. It also tends to make it easier to break down into more of a micro-ui pattern if needed.
You can use redux-micro-frontend for state management in concert with exposing React and your UI component library of choice as global patterns from the start. Again, easier to break things up later.
Just my own $.02