import React, { useState, useEffect } from 'react'; import { Paper, Group, Text, Button, ActionIcon } from '@mantine/core'; import { useTranslation } from 'react-i18next'; import LocalIcon from '@app/components/shared/LocalIcon'; import { defaultAppService } from '@app/services/defaultAppService'; import { alert } from '@app/components/toast'; const PROMPT_DISMISSED_KEY = 'stirlingpdf_default_app_prompt_dismissed'; export const DefaultAppBanner: React.FC = () => { const { t } = useTranslation(); const [promptDismissed, setPromptDismissed] = useState(() => { return localStorage.getItem(PROMPT_DISMISSED_KEY) === 'true'; }); const [isDefault, setIsDefault] = useState(null); const [isLoading, setIsLoading] = useState(false); useEffect(() => { checkDefaultStatus(); }, []); const checkDefaultStatus = async () => { try { const status = await defaultAppService.isDefaultPdfHandler(); setIsDefault(status); } catch (error) { console.error('Failed to check default status:', error); } }; const handleSetDefault = async () => { setIsLoading(true); try { const result = await defaultAppService.setAsDefaultPdfHandler(); if (result === 'set_successfully') { alert({ alertType: 'success', title: t('defaultApp.success.title', 'Default App Set'), body: t('defaultApp.success.message', 'Stirling PDF is now your default PDF editor'), }); setIsDefault(true); } else if (result === 'opened_settings') { alert({ alertType: 'neutral', title: t('defaultApp.settingsOpened.title', 'Settings Opened'), body: t('defaultApp.settingsOpened.message', 'Please select Stirling PDF in your system settings'), }); } } catch (error) { console.error('Failed to set default:', error); alert({ alertType: 'error', title: t('defaultApp.error.title', 'Error'), body: t('defaultApp.error.message', 'Failed to set default PDF handler'), }); } finally { setIsLoading(false); } }; const handleDismissPrompt = () => { setPromptDismissed(true); localStorage.setItem(PROMPT_DISMISSED_KEY, 'true'); }; if (promptDismissed || isDefault !== false) { return null; } return ( {t('defaultApp.prompt.message', 'Make Stirling PDF your default application for opening PDF files.')} ); };