import React, { useEffect, useState } from 'react'; import TmaButton from '../components/TmaButton'; import TmaInput from '../components/TmaInput'; import TmaCard from '../components/TmaCard'; import TmaLoader from '../components/TmaLoader'; export default function Home() { const [user, setUser] = useState(null); const [loading, setLoading] = useState(true); const [formData, setFormData] = useState({ name: '', message: '', }); const [response, setResponse] = useState(null); // Initialize Telegram WebApp SDK useEffect(() => { if (typeof window !== 'undefined' && window.Telegram?.WebApp) { const tg = window.Telegram.WebApp; // Expand the app to full height tg.expand(); // Set theme colors based on user's Telegram theme document.body.style.backgroundColor = tg.themeParams.bg_color || '#ffffff'; // Initialize user data if available if (tg.initDataUnsafe?.user) { setUser(tg.initDataUnsafe.user); setFormData(prev => ({ ...prev, name: tg.initDataUnsafe.user.first_name || '', })); } setLoading(false); } else { // Fallback for development environment (non-Telegram) setLoading(false); } }, []); const handleInputChange = (e) => { const { name, value } = e.target; setFormData(prev => ({ ...prev, [name]: value, })); }; const handleSubmit = async (e) => { e.preventDefault(); setLoading(true); try { // Simulate API call await new Promise(resolve => setTimeout(resolve, 1500)); setResponse({ status: 'success', data: `Hello, ${formData.name}! Your message has been sent successfully.`, }); } catch (error) { setResponse({ status: 'error', data: 'Something went wrong. Please try again.', }); } finally { setLoading(false); } }; if (loading) { return ; } return (
{user ? ( <>
{user.first_name?.[0]}
{user.first_name} {user.last_name} @{user.username || 'User'}
) : (
Guest User
)}
{user ? (
ID {user.id}
Language {user.language_code || 'N/A'}
) : (

Not logged in via Telegram.

)}
{response && (
{response.data}
)}
); }