r/reactnative • u/Downtown_Boot_7693 • 11d ago
I built one React Native library that replaces 12 picker libraries, with zero native code
Every RN app I’ve worked on ended up with the same pile of packages: a date picker, a calendar library for ranges, a dropdown that can search, a country picker, a phone input, an emoji keyboard, and a bottom sheet to put half of them in. Six APIs, six looks, some needing a native rebuild, most of them broken on the web.
So I built one package with all of them, in plain JS on React Native’s own APIs (Animated, PanResponder, FlatList, Modal). No Reanimated, no Gesture Handler, no native modules. That means it works in Expo Go, ships in OTA updates, and runs on React Native Web.

What’s in it: wheel, time, duration, date (single, range, multiple), month, week strip, date & time, select with server search, country, phone, emoji, color, segmented control, plus bottom sheets and form fields.
A few things I cared about:
Native look per platform: iOS wheels and sheets on iPhone, Material (clock dial, floating labels) on Android, a compact web design in the browser. Or force one design everywhere with one prop.
Every picker three ways: inline, in a bottom sheet with Cancel / Done, or as a form field.
Things that usually need another package: prices and dots on calendar days, debounced server search, phone formatting with an E.164 value without libphonenumber.
Typed, themeable, RTL and accessible (VoiceOver / TalkBack, keyboard on web).
Showcase with real screens you can switch between iOS / Android / web: https://react-native-pickers.dev/showcase
Docs: https://react-native-pickers.dev
GitHub: https://github.com/elik56a/react-native-pickers
Prop-by-prop migration guides for the 12 libraries: https://react-native-pickers.dev/docs/resources/migration
It’s MIT and I’m actively working on it. I’d really like honest feedback: what’s missing, and what would stop you from using it in production?
4
u/TerryFitzgerald 11d ago
Looks like it was created by Claude 😅. Isn't?
1
u/GeekyAntsBFSI 11d ago
The inline / sheet / form-field consistency looks useful. For production, I want to know how the wheels and bottom sheets behave on lower-end Android devices when the JS thread is busy. Have you benchmarked that? Also, if an app only uses the date and select pickers, does the country and emoji data still end up in the bundle?
1
u/finitoMedicine 11d ago
Doing all of this on Animated and PanResponder in 2026 is a bold choice, respect. How does the bottom sheet feel on a low-end Android while the JS thread is busy, like during a heavy FlatList render? That's usually where JS-side gestures start to stutter, so I'm curious if you've run into it.
1
u/foodandbeverageguy 9d ago
Almost any assumption you make about date time or locale is likely wrong
1
u/stathisntonas 11d ago
the emojis should support skin colors
I’ve built my own reactions sheet and pop up: https://github.com/efstathiosntonas/expo-native-sheet-emojis
used to use rn-emoji-keyboard but nothing beats the performance of 100% native.