TrueSheet؛ باتمشیت نیتیو برای React Native
خلاصهٔ کاملتر
به گفتهٔ سازندهٔ پروژه، هدف TrueSheet اینه که باتمشیت تو اپهای React Native دقیقاً همون حسی رو بده که کاربر تو اپهای نیتیو میبینه. کل شیت تو لایهٔ نیتیو پیادهسازی شده و خبری از ترفندهای جاوااسکریپتی برای تقلید انیمیشن و رفتارش نیست؛ نتیجهش اینه که دسترسپذیری و پشتیبانی از screen reader هم بدون کار اضافه کار میکنه.
نسخهٔ ۳ روی معماری جدید ریاکت نیتیو (Fabric) سواره و همین پایه، بقیهٔ امکانات رو ممکن کرده: مدیریت خودکار کیبورد، شیت کناری (side sheet) نیتیو برای آیپد و تبلتهای اندروید، پشتیبانی از Liquid Glass آیاواس ۲۶، سازگاری درجهیک با react-native-reanimated و یه sheet navigator آماده برای React Navigation. پشتیبانی از وب هم از همون اول توی جعبه هست.
API دو حالت داره: متدهای imperative از طریق ref، یا رویدادهای چرخهٔ عمر. تو نمونهٔ زیر یه ref به شیت وصل میشه و با present() باز و با dismiss() بسته میشه؛ detents هم ارتفاعهای مجاز شیت رو مشخص میکنه — 'auto' یعنی بهاندازهٔ محتوا و 1 یعنی تمامصفحه.
const sheet = useRef<TrueSheet>(null)
const present = async () => {
await sheet.current?.present()
}
<TrueSheet ref={sheet} detents={['auto', 1]}>
<Button onPress={dismiss} title="Dismiss" />
</TrueSheet>پیشنیازها یهکم سختگیرانهست: React Native 0.81 یا بالاتر، معماری جدید فعال و Xcode 26.1 به بعد؛ روی Expo هم SDK 54 به بالا. اگه هنوز روی معماری قدیمی موندین، باید سراغ نسخهٔ 2.x برین و برای ارتقا از راهنمای مهاجرت پروژه کمک بگیرین. کتابخونه با مجوز MIT منتشر شده.
نکات کلیدی:
- باتمشیت کاملاً نیتیو برای React Native، بدون هک جاوااسکریپتی
- ساختهشده روی معماری جدید (Fabric) با تمرکز روی کارایی
- دسترسپذیری و پشتیبانی از screen reader بهصورت پیشفرض
- شیت کناری برای آیپد و تبلت اندروید، مدیریت کیبورد و Liquid Glass آیاواس ۲۶
- سازگار با Reanimated و React Navigation، بهعلاوهٔ پشتیبانی از وب
- نسخهٔ ۳ به معماری جدید و React Native 0.81+ نیاز داره؛ برای معماری قدیمی نسخهٔ 2.x




