diff --git a/rmser-view/src/pages/MaintenancePage.tsx b/rmser-view/src/pages/MaintenancePage.tsx
new file mode 100644
index 0000000..49b7bb5
--- /dev/null
+++ b/rmser-view/src/pages/MaintenancePage.tsx
@@ -0,0 +1,28 @@
+import { Result, Button } from "antd";
+
+// Страница-заглушка для режима технического обслуживания
+const MaintenancePage = () => (
+
+ window.location.reload()}>
+ Попробовать снова
+
+ }
+ />
+
+);
+
+export default MaintenancePage;
diff --git a/rmser-view/src/services/api.ts b/rmser-view/src/services/api.ts
index f78a390..92bb9ec 100644
--- a/rmser-view/src/services/api.ts
+++ b/rmser-view/src/services/api.ts
@@ -46,6 +46,9 @@ const tg = window.Telegram?.WebApp;
// Событие для глобальной обработки 401
export const UNAUTHORIZED_EVENT = 'rms_unauthorized';
+// Событие для режима технического обслуживания (503)
+export const MAINTENANCE_EVENT = 'rms_maintenance';
+
const apiClient = axios.create({
baseURL: API_BASE_URL,
headers: {
@@ -80,9 +83,14 @@ apiClient.interceptors.response.use(
description: 'Ваша сессия в Telegram истекла или данные неверны. Попробуйте перезапустить бота.',
placement: 'top',
});
-
+
window.dispatchEvent(new Event(UNAUTHORIZED_EVENT));
}
+
+ if (error.response && error.response.status === 503) {
+ // Режим технического обслуживания
+ window.dispatchEvent(new Event(MAINTENANCE_EVENT));
+ }
// Если запрос был отменен нами (нет initData), не выводим стандартную ошибку API
if (error.message === 'MISSING_TELEGRAM_DATA') {