import React, { useEffect } from 'react'; import { View, StyleSheet, Modal, TouchableOpacity, Platform } from 'react-native'; import Text from '../atoms/Text'; import Button from '../atoms/Button'; import { MaterialIcons } from '@expo/vector-icons'; import { useCreditsScreenTracking } from '../../hooks/useStoryEngagement'; interface InsufficientCreditsModalProps { visible: boolean; requiredCredits: number; availableCredits: number; operationType: 'story' | 'character'; onClose: () => void; onGetCredits?: () => void; } export default function InsufficientCreditsModal({ visible, requiredCredits, availableCredits, operationType, onClose, onGetCredits, }: InsufficientCreditsModalProps) { const missingCredits = requiredCredits - availableCredits; const operationText = operationType === 'story' ? 'Geschichte' : 'Charakter'; // Track modal viewing when visible useEffect(() => { if (visible) { // This is tracked via the global handler useCreditsScreenTracking // Individual insufficient credits events are already tracked via analytics } }, [visible]); return ( e.stopPropagation()} > Nicht genug Credits Du benötigst {requiredCredits} Credits, um diese{' '} {operationText} zu erstellen, aber du hast nur{' '} {availableCredits} Credits verfügbar. Benötigt: {requiredCredits} Credits Verfügbar: {availableCredits} Credits Fehlen: {missingCredits} Credits {onGetCredits && (