Добавлен демо-режим: Можно открыть приложение с параметром ?demo в URL В демо-режиме эмулируется Telegram WebApp SDK Добавлена заглушка для демо-пользователя Исправлены типы и интерфейсы: Добавлен тип SafeUser для безопасной работы с mongoose документами Исправлены пропсы компонентов Обновлены типы для покупок в магазине Улучшена обработка ошибок: Добавлены информативные сообщения об ошибках Реализована корректная обработка сетевых ошибок Добавлены toast-уведомления с подробной информацией Улучшен UI: Добавлены спиннеры загрузки Улучшен внешний вид карточек товаров Добавлены информативные сообщения о состоянии
39 lines
966 B
TypeScript
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: () => {}
|
|
};
|
|
};
|