I am implementing a drag and drop file input in React for work, and my instinct was to build my own using the HTML5 drag & drop API stuff. I was curious and looked at our old implementation, which uses a library called react-dropzone to handle the drop zone stuff. It's 683kb unpacked? And yes, it supports many configurations of drag & drop but our app only needs 1 configuration. Why introduce a huge blackbox dependency that wraps the browser API when you could just... use the browser API...
If my component was
1) very complicated, needing to handle lots of different state
2) central to the UX of our app
then I would absolutely use this well-tested, widely-used library. It would be worth the cost in both added external dependency and file size. But the library gets 1 million downloads a week and I bet most of those are use cases where this is sheer overkill.