Regarding structure, I prefer to organize by the feature, regardless of the type the file represents… for example ./login may contain UI controls, state machine (redux or other), default state, api client interfaces, etc… In this way, I can look for things structured under where/why they are used. I may also use subdirectories for controls/components under a given screen/section of a site to subdivide further.
In the end I find that creating a discoverable hierarchy from the perspective of using/interacting with an application works better overall, is easier to onboard new developers, and is more supportable over time.