import { View, Text, TouchableOpacity } from 'react-native'; import { Ionicons } from '@expo/vector-icons'; import { useTranslation } from 'react-i18next'; import type { ProtectionState } from '../../lib/protection'; import { useColors } from '../../lib/theme'; type Props = { state: ProtectionState; /** True wenn Gerät MDM-managed ist — versteckt Cooldown-Hint, zeigt Trustee-Info. */ mdmManaged?: boolean; /** True wenn NEFilter via System-Profil aktiv ist. */ nefilterActive?: boolean; /** Click-1 of 3-Click-Cooldown-Trigger — öffnet ProtectionDetailsSheet. */ onPressSettings: () => void; }; /** * Wird gezeigt sobald Family Controls aktiv ist — der Schutz ist dann * "locked in" und kann nur über den Cooldown-Flow deaktiviert werden. * Daher: KEINE Switches mehr, nur ein Settings-Icon das den 3-Click-Flow startet. */ export function ProtectionLockedCard({ state, mdmManaged, nefilterActive, onPressSettings }: Props) { const { t } = useTranslation(); const colors = useColors(); const isCooldown = state.phase === 'cooldownActive'; const isMdmMode = mdmManaged || nefilterActive; const cardBg = isCooldown ? '#fef3c7' : '#dcfce7'; const cardBorder = isCooldown ? '#fcd34d' : '#86efac'; const iconBg = isCooldown ? '#fde68a' : '#bbf7d0'; const iconColor = isCooldown ? '#d97706' : '#16a34a'; const subtitle = (() => { if (isCooldown) return t('blocker.protection_subtitle_cooldown'); if (isMdmMode) return t('blocker.protection_subtitle_mdm'); if (state.plan === 'legend') { return t('blocker.protection_subtitle_legend'); } if (state.plan === 'pro') { return t('blocker.protection_subtitle_pro'); } return t('blocker.protection_subtitle_free', { count: state.blocklistCount }); })(); return ( {t('blocker.protection_card_locked_title')} {subtitle} {/* Stats nur wenn aktiv und kein Cooldown */} {!isCooldown && ( )} ); } function Stat({ label, value, valueColor }: { label: string; value: string; valueColor?: string }) { const colors = useColors(); return ( {value} {label} ); } function formatCount(n: number): string { if (n >= 1000) return `${Math.floor(n / 1000)}k+`; return String(n); }