import { Modal, Stack, Button, Text, Title, Anchor } from '@mantine/core'; import { useTranslation } from 'react-i18next'; import { useState } from 'react'; import { Z_ANALYTICS_MODAL } from '../../styles/zIndex'; import apiClient from '../../services/apiClient'; interface AdminAnalyticsChoiceModalProps { opened: boolean; onClose?: () => void; } export default function AdminAnalyticsChoiceModal({ opened }: AdminAnalyticsChoiceModalProps) { const { t } = useTranslation(); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const handleChoice = async (enableAnalytics: boolean) => { setLoading(true); setError(null); try { const formData = new FormData(); formData.append('enabled', enableAnalytics.toString()); await apiClient.post('/api/v1/settings/update-enable-analytics', formData); // Reload the page to apply new settings window.location.reload(); } catch (err) { setError(err instanceof Error ? err.message : 'Unknown error occurred'); setLoading(false); } }; const handleEnable = () => { handleChoice(true); }; const handleDisable = () => { handleChoice(false); }; return ( {}} // Prevent closing closeOnClickOutside={false} closeOnEscape={false} withCloseButton={false} size="lg" centered zIndex={Z_ANALYTICS_MODAL} > {t('analytics.title', 'Do you want make Stirling PDF better?')} {t('analytics.paragraph1', 'Stirling PDF has opt in analytics to help us improve the product. We do not track any personal information or file contents.')} {t('analytics.paragraph2', 'Please consider enabling analytics to help Stirling-PDF grow and to allow us to understand our users better.')}{' '} {t('analytics.learnMore', 'Learn more')} {error && ( {error} )} {t('analytics.settings', 'You can change the settings for analytics in the config/settings.yml file')} ); }