diff --git a/src/components/admin/remnawave/GeoCheckModal.tsx b/src/components/admin/remnawave/GeoCheckModal.tsx
index 33d6fe3..0bd6a32 100644
--- a/src/components/admin/remnawave/GeoCheckModal.tsx
+++ b/src/components/admin/remnawave/GeoCheckModal.tsx
@@ -32,7 +32,11 @@ export function GeoCheckModal({ node, onClose }: GeoCheckModalProps) {
// В Mini App окно Telegram и так занимает экран целиком: отдельный
// полноэкранный режим там только снимал отступы и залезал под хром.
- const canFullscreen = !useIsTelegram();
+ // Тот же признак закрывает и скачивание: в webview Telegram оно уводит
+ // из приложения вместо сохранения файла.
+ const isTelegram = useIsTelegram();
+ const canFullscreen = !isTelegram;
+ const canDownload = !isTelegram;
const fullscreen = canFullscreen && fullscreenRequested;
const job = useGeoCheckJob(node.uuid);
@@ -218,6 +222,7 @@ export function GeoCheckModal({ node, onClose }: GeoCheckModalProps) {
nodeName={node.name}
fullscreen={fullscreen}
canFullscreen={canFullscreen}
+ canDownload={canDownload}
onToggleFullscreen={() => setFullscreenRequested((v) => !v)}
onRerun={job.retry}
/>
diff --git a/src/components/admin/remnawave/GeoCheckReport.tsx b/src/components/admin/remnawave/GeoCheckReport.tsx
index c1894af..f3a8f03 100644
--- a/src/components/admin/remnawave/GeoCheckReport.tsx
+++ b/src/components/admin/remnawave/GeoCheckReport.tsx
@@ -30,6 +30,14 @@ interface GeoCheckReportProps {
* во весь экран — режим лишь снимал отступы и лез под хром Telegram.
*/
canFullscreen: boolean;
+ /**
+ * Показывать ли скачивание. В webview Telegram атрибут `download`
+ * игнорируется: вместо сохранения файла webview уходит на blob и подменяет
+ * собой Mini App, вернуться можно только кнопкой «Назад». Штатный
+ * `downloadFile` из Bot API 8.0 тут не помогает — он требует HTTPS-ссылку
+ * на файл, а отчёт приходит base64 внутри JSON.
+ */
+ canDownload: boolean;
onToggleFullscreen: () => void;
onRerun: () => void;
}
@@ -48,6 +56,7 @@ export function GeoCheckReport({
nodeName,
fullscreen,
canFullscreen,
+ canDownload,
onToggleFullscreen,
onRerun,
}: GeoCheckReportProps) {
@@ -170,16 +179,18 @@ export function GeoCheckReport({
)}
-
+ {canDownload && (
+
+ )}