Instead of...
tests
auth
login.test.ts
controllers
auth
login.ts
components
auth
login.tsx
...
You would have... feature
auth
login
login.data.ts
login.data.test.ts
login.controller.ts
login.controller.test.ts
login.form.tsx
login.form.test.ts
...
That, in my opinion should include tests... You can have shared components, etc... or break up sub-projects.. but within a given project, I prefer features/concerns over class/data type.edit: In the above case, controller is really a higher order hook along with a higher order function component that will get call the hook, then pass the state to the separate component for render/events.
If you're doing server components, may want something similar but different depending on architecture or out of the box structures.