/** * Example Usage of Global Modal * * This file demonstrates how to use the global modal system from anywhere in your app. * You can delete this file after understanding how it works. */ import { Ionicons } from "@expo/vector-icons"; import { TouchableOpacity, View } from "react-native"; import { Text } from "@/components/common/Text"; import { useGlobalModal } from "@/providers/GlobalModalProvider"; /** * Example 1: Simple Content Modal */ export const SimpleModalExample = () => { const { showModal } = useGlobalModal(); const handleOpenModal = () => { showModal( Simple Modal This is a simple modal with just some text content. Swipe down or tap outside to close. , ); }; return ( Open Simple Modal ); }; /** * Example 2: Modal with Custom Snap Points */ export const CustomSnapPointsExample = () => { const { showModal } = useGlobalModal(); const handleOpenModal = () => { showModal( Custom Snap Points This modal has custom snap points (25%, 50%, 90%). Try dragging the modal to different heights! , { snapPoints: ["25%", "50%", "90%"], enableDynamicSizing: false, }, ); }; return ( Custom Snap Points ); }; /** * Example 3: Complex Component in Modal */ const SettingsModalContent = () => { const { hideModal } = useGlobalModal(); const settings = [ { id: 1, title: "Notifications", icon: "notifications-outline" as const, enabled: true, }, { id: 2, title: "Dark Mode", icon: "moon-outline" as const, enabled: true }, { id: 3, title: "Auto-play", icon: "play-outline" as const, enabled: false, }, ]; return ( Settings {settings.map((setting, index) => ( {setting.title} ))} Close ); }; export const ComplexModalExample = () => { const { showModal } = useGlobalModal(); const handleOpenModal = () => { showModal(); }; return ( Complex Component ); }; /** * Example 4: Modal Triggered from Function (e.g., API response) */ export const useShowSuccessModal = () => { const { showModal } = useGlobalModal(); return (message: string) => { showModal( Success! {message} , ); }; }; /** * Main Demo Component */ export const GlobalModalDemo = () => { const showSuccess = useShowSuccessModal(); return ( Global Modal Examples showSuccess("Operation completed successfully!")} className='bg-orange-600 px-4 py-2 rounded-lg' > Show Success Modal ); };