Nobody builds anything modularly.
It's very weird. I've come into codebases at my current big co where 15 tables that all looked and acted exactly as terribly as one another (no sorting, no discernible sort, no filtering, limited page sizes, no search beyond CMD/CTRL-F)
And they were all built out one by one, every time.
What a mess, why! I consolidated everything down and am now bringing up both an App URL Param library other folks can use, a generic resource engine other folks can use, and a table engine which combines the two to give you most table functionality with a simple config and passing in the resources (We're internal tooling for small record sets so a lot can be handled on the front end since resource baseline can be assumed and customer count is low).
Even when you build things modularly people will give you grief. It's over engineered. Well, you say that, except it's testable at the unit level, easy to slide in to other use cases (which the test cases help ensure resiliancy for old and new), small, not nested, discoverable, flat, easy to read, and easy to maintain.
So sure, took a couple of extra hours of legwork up front compared to just dropping everything into a single React function as is the standard round these parts, but the benefits are clear.