CampFireID/app/utils/demo.ts
degradin 2af270e3d8 Global fixes
Добавлен демо-режим:
Можно открыть приложение с параметром ?demo в URL
В демо-режиме эмулируется Telegram WebApp SDK
Добавлена заглушка для демо-пользователя
Исправлены типы и интерфейсы:
Добавлен тип SafeUser для безопасной работы с mongoose документами
Исправлены пропсы компонентов
Обновлены типы для покупок в магазине
Улучшена обработка ошибок:
Добавлены информативные сообщения об ошибках
Реализована корректная обработка сетевых ошибок
Добавлены toast-уведомления с подробной информацией
Улучшен UI:
Добавлены спиннеры загрузки
Улучшен внешний вид карточек товаров
Добавлены информативные сообщения о состоянии
2025-03-16 12:05:42 +03:00

39 lines
966 B
TypeScript

// Демо данные для тестирования без Telegram
const demoUser = {
id: 'demo_user',
first_name: 'Demo',
username: 'demo_user',
language_code: 'ru'
};
export const isDemoMode = () => {
return typeof window !== 'undefined' && new URLSearchParams(window.location.search).has('demo');
};
export const getDemoWebApp = () => {
return {
initData: 'demo_mode',
initDataUnsafe: {
user: demoUser,
start_param: 'demo'
},
platform: 'demo',
colorScheme: 'light',
themeParams: {
bg_color: '#ffffff',
text_color: '#000000',
hint_color: '#999999',
link_color: '#2481cc',
button_color: '#2481cc',
button_text_color: '#ffffff'
},
isExpanded: true,
viewportHeight: window.innerHeight,
viewportStableHeight: window.innerHeight,
headerColor: '#ffffff',
backgroundColor: '#ffffff',
ready: () => {},
expand: () => {},
close: () => {}
};
};