import { AvoidKeyboard } from '@/components/ui/avoid-keyboard'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { Text } from '@/components/ui/text'; import { View } from '@/components/ui/view'; import { useKeyboardHeight } from '@/hooks/useKeyboardHeight'; import { useColor } from '@/hooks/useColor'; import { Settings, Keyboard, Smartphone } from 'lucide-react-native'; import React, { useState } from 'react'; import { ScrollView, Switch } from 'react-native'; export function AvoidKeyboardPlayground() { const [message, setMessage] = useState(''); const [offset, setOffset] = useState(20); const [duration, setDuration] = useState(0); const [showStats, setShowStats] = useState(false); const card = useColor('card'); // Get keyboard stats for debugging const { keyboardHeight, isKeyboardVisible, keyboardAnimationDuration } = useKeyboardHeight(); const presetOffsets = [0, 10, 20, 40, 60]; const presetDurations = [0, 100, 250, 500]; return ( {/* Controls */} {/* Header */} AvoidKeyboard Playground Test different configurations and see real-time keyboard stats {/* Debug Stats Toggle */} Show Keyboard Stats {/* Keyboard Stats */} {showStats && ( Keyboard Status Visible: {isKeyboardVisible ? '✅ Yes' : '❌ No'} Height: {keyboardHeight}px Animation Duration: {keyboardAnimationDuration}ms )} {/* Offset Controls */} Offset Configuration Extra space above keyboard: {offset}px {presetOffsets.map((value) => ( ))} {/* Duration Controls */} Animation Duration Extra animation time: {duration}ms {presetDurations.map((value) => ( ))} {/* Usage Examples */} Code Example {` 0 ? ` offset={${offset}}` : ''}${ duration > 0 ? ` duration={${duration}}` : '' } />`} {/* Spacer to push test input to bottom */} {/* Test Input Area */} Test Input {/* The actual AvoidKeyboard component */} ); }