# OS_Wrapper Quick Reference ## 📦 Import ```tsx import { OS_Wrapper, IOSWrapper, AndroidWrapper } from "@/components"; ``` ## 🎯 Usage Examples ### 1. OS_Wrapper - List Mode (Most Common) ```tsx } ListEmptyComponent={} ListFooterComponent={} onEndReached={loadMore} refreshControl={ } /> ``` ### 2. OS_Wrapper - Static Mode ```tsx } footerComponent={} withBackground={true} > ``` ### 3. OS_Wrapper - Form dengan Keyboard Handling ```tsx Submit } > ``` ### 4. Platform-Specific (Rare Cases) ```tsx // iOS only // Android only ``` ## 📋 Props Reference ### Common Props (iOS + Android) | Prop | Type | Default | Description | |------|------|---------|-------------| | `withBackground` | boolean | false | Show background image | | `headerComponent` | ReactNode | - | Sticky header component | | `footerComponent` | ReactNode | - | Fixed footer component | | `floatingButton` | ReactNode | - | Floating button | | `hideFooter` | boolean | false | Hide footer section | | `edgesFooter` | Edge[] | [] | Safe area edges | | `style` | ViewStyle | - | Custom container style | | `refreshControl` | RefreshControl | - | Pull to refresh control | ### Android-Only Props (Ignored on iOS) | Prop | Type | Default | Description | |------|------|---------|-------------| | `enableKeyboardHandling` | boolean | false | Auto-scroll on input focus | | `keyboardScrollOffset` | number | 100 | Scroll offset when keyboard appears | | `contentPaddingBottom` | number | 80 | Extra bottom padding | | `contentPadding` | number | 16 | Content padding (all sides) | ## 🔄 Migration Pattern ```diff - import NewWrapper from "@/components/_ShareComponent/NewWrapper"; + import { OS_Wrapper } from "@/components"; - ``` ```diff - import { NewWrapper_V2 } from "@/components/_ShareComponent/NewWrapper_V2"; + import { OS_Wrapper } from "@/components"; - + ``` ## 💡 Tips 1. **Pakai OS_Wrapper** untuk semua screen (list, detail, form) 2. **Tambahkan `enableKeyboardHandling`** untuk form dengan input fields 3. **Jangan mix** wrapper lama dan baru di screen yang sama 4. **Test di kedua platform** sebelum commit 5. **Keyboard handling** hanya bekerja di Android (iOS mengabaikan props ini) ## ⚠️ Common Mistakes ### ❌ Wrong ```tsx // Jangan import langsung dari file import OS_Wrapper from "@/components/_ShareComponent/OS_Wrapper"; // Jangan mix wrapper {content} // Jangan pakai PageWrapper (sudah tidak ada) import { PageWrapper } from "@/components"; ``` ### ✅ Correct ```tsx // Import dari @/components import { OS_Wrapper } from "@/components"; // Simple content {content} // Form with keyboard handling ``` --- Last updated: 2026-04-06