import React from 'react'; import { Save, Key, AlertCircle } from 'lucide-react'; import { Button, Card, Input } from '../../../components/common'; import { useTranslation } from 'react-i18next'; import type { SecuritySettings } from '../hooks/useSettingsState'; interface SecurityTabProps { securitySettings: SecuritySettings; setSecuritySettings: React.Dispatch>; saveSecurityMutation: { mutate: () => void; isPending: boolean; }; } export const SecurityTab: React.FC = ({ securitySettings, setSecuritySettings, saveSecurityMutation, }) => { const { t } = useTranslation(); return (

{t('settings.security.passwordSettings')}

setSecuritySettings(prev => ({ ...prev, password_min_length: parseInt(e.target.value) || 8 }))} min="4" max="32" />

{t('settings.security.passwordComplexityHelp')}

{t('settings.security.sessionAuth')}

setSecuritySettings(prev => ({ ...prev, session_timeout_minutes: parseInt(e.target.value, 10) || 60 }))} min="5" max="1440" />
setSecuritySettings(prev => ({ ...prev, attempt_window_minutes: parseInt(e.target.value, 10) || 15 }))} min="1" max="1440" />

{t('settings.security.attemptWindowMinutesHelp')}

setSecuritySettings(prev => ({ ...prev, lockout_duration_minutes: parseInt(e.target.value, 10) || 30 }))} min="1" max="1440" />

{t('settings.security.lockoutDurationMinutesHelp')}

setSecuritySettings(prev => ({ ...prev, max_login_attempts: parseInt(e.target.value, 10) || 5 }))} min="1" max="50" />

{t('settings.security.maxLoginAttemptsHelp')}

{t('settings.security.recaptchaSettings')}

{securitySettings.enable_recaptcha && ( <>
setSecuritySettings(prev => ({ ...prev, recaptcha_site_key: e.target.value }))} placeholder={t('settings.security.siteKey')} leftIcon={} />
setSecuritySettings(prev => ({ ...prev, recaptcha_secret_key: e.target.value }))} placeholder={t('settings.security.secretKey')} leftIcon={} />
)}

{t('settings.security.recaptchaHelp')} Google reCAPTCHA Admin

); };