I've found that OOP has too many footguns and becomes a nightmare to debug. in contrast, I find that e.g traits in Rust (insert equivalent for your language of choice here, I'm aware Rust isn't the only one with it) are a much cleaner fit. I'm not really sure what the official term is, but I refer to it as Composition-based programming. It sits in a perfect middle ground of being object-oriented-ish without letting people go hog wild.
This all said, I find codebases that use only "functions & data" to be very cumbersome as well. We have patterns for encapsulation that have kind of gotten thrown out the window over the years and it's frustrating. Too many of these codebases feel like they have an inadvertent bus factor of one due to the code being so un-encapsulated, and it's one or two people who really know how it all works.
(As a side note, I never got the hate for JS classes - I know they don't behave like true classes in other languages, but I considered that a plus. React was 100x more approachable with them.)