import { Suspense, lazy } from 'react';
import { useShallow } from 'zustand/react/shallow';
import LicenseOverlay from '../LicenseOverlay';
import { useDinsarStore, usePairingStore, useUiStore } from '../../store';
import { useI18n } from '../../i18n/I18nContext';
import { formatYmd } from '../../utils/appUiHelpers';
import { ModalLoadingFallback } from './AppLoadingFallbacks';
const LazyPairingModal = lazy(() => import('../PairingModal'));
const LazyPsStackModal = lazy(() => import('../PsStackModal'));
const LazyDataInfoModal = lazy(() => import('../DataInfoModal'));
const LazyActiveTasksOverlay = lazy(() => import('../ActiveTasksOverlay'));
const LazyStatisticsDashboard = lazy(() => import('../../StatisticsDashboard'));
const LazyAiReportModal = lazy(() => import('../AiReportModal'));
const LazyMapExportModal = lazy(() => import('../MapExportModal'));
export default function AppOverlays({
onPairingSubmit,
onPairingAoiModeChange,
onPairingProvinceChange,
onPairingCityChange,
onPsSubmit,
onPsAoiModeChange,
onPsProvinceChange,
onPsCityChange,
licenseLoading,
licenseStatus,
isAdmin,
licenseFileRef,
onUploadFile,
onRefreshLicenseStatus,
licenseFileName,
licenseUploadStatus,
isGlobalLocked,
activeTasks,
showForceUnlock,
forceUnlockPwd,
onShowForceUnlock,
onForceUnlockPwdChange,
onForceUnlockConfirm,
onCancelForceUnlock,
mapExport,
}) {
const { language, t } = useI18n();
const { showPairingModal, showPsModal } = usePairingStore(useShallow((state) => ({
showPairingModal: state.showPairingModal,
showPsModal: state.showPsModal,
})));
const {
showStats,
setShowStats,
showDataInfo,
setShowDataInfo,
selectedDataInfo,
} = useUiStore(useShallow((state) => ({
showStats: state.showStats,
setShowStats: state.setShowStats,
showDataInfo: state.showDataInfo,
setShowDataInfo: state.setShowDataInfo,
selectedDataInfo: state.selectedDataInfo,
})));
const { activeAiReport, setActiveAiReport } = useDinsarStore(useShallow((state) => ({
activeAiReport: state.activeAiReport,
setActiveAiReport: state.setActiveAiReport,
})));
return (
<>
{showPairingModal && (
}>
)}
{showPsModal && (
}>
)}
{activeAiReport && (
}>
setActiveAiReport(null)}
/>
)}
{showStats && (
}>
setShowStats(false)} />
)}
{showDataInfo && (
}>
formatYmd(value, language)}
onClose={() => setShowDataInfo(false)}
/>
)}
{isGlobalLocked && (
}>
)}
{mapExport.showExportModal && (
}>
)}
>
);
}