From e97bc0f56b44ea761e27696cdbbe4a99f95e7d9e Mon Sep 17 00:00:00 2001 From: Kurdistan Tech Ministry Date: Fri, 6 Feb 2026 19:48:42 +0300 Subject: [PATCH] fix: add auth error display and fix retry button --- package.json | 2 +- src/contexts/AuthContext.tsx | 11 ++++++++++- src/sections/Wallet.tsx | 11 +++++++---- src/version.json | 6 +++--- 4 files changed, 21 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index bb8de14..1530ea1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "pezkuwi-telegram-miniapp", - "version": "1.0.120", + "version": "1.0.121", "type": "module", "description": "Pezkuwichain Telegram Mini App - Forum, Announcements, Rewards", "author": "Pezkuwichain Team", diff --git a/src/contexts/AuthContext.tsx b/src/contexts/AuthContext.tsx index 57db743..40af2d1 100644 --- a/src/contexts/AuthContext.tsx +++ b/src/contexts/AuthContext.tsx @@ -7,6 +7,7 @@ interface AuthContextType { sessionToken: string | null; isLoading: boolean; isAuthenticated: boolean; + authError: string | null; signIn: () => Promise; } @@ -16,11 +17,15 @@ export function AuthProvider({ children }: { children: ReactNode }) { const [user, setUser] = useState(null); const [sessionToken, setSessionToken] = useState(null); const [isLoading, setIsLoading] = useState(true); + const [authError, setAuthError] = useState(null); const signIn = async () => { const tg = window.Telegram?.WebApp; + setAuthError(null); + setIsLoading(true); if (!tg?.initData) { + setAuthError('No Telegram initData'); setIsLoading(false); return; } @@ -29,13 +34,16 @@ export function AuthProvider({ children }: { children: ReactNode }) { const result = await signInWithTelegram(tg.initData); if (result?.user) { setUser(result.user); + setAuthError(null); } // Store session token for P2P and other cross-app auth if (result?.session_token) { setSessionToken(result.session_token); } } catch (error) { - // Auth failed silently - user will see unauthenticated state + // Capture error message for debugging + const errorMsg = error instanceof Error ? error.message : String(error); + setAuthError(errorMsg); if (import.meta.env.DEV) { console.error('[Auth] Error:', error); } @@ -56,6 +64,7 @@ export function AuthProvider({ children }: { children: ReactNode }) { sessionToken, isLoading, isAuthenticated: !!user, + authError, signIn, }} > diff --git a/src/sections/Wallet.tsx b/src/sections/Wallet.tsx index 754f1e6..560b43c 100644 --- a/src/sections/Wallet.tsx +++ b/src/sections/Wallet.tsx @@ -22,7 +22,7 @@ type UserScreen = 'create' | 'import' | null; export function WalletSection() { const { isInitialized, isConnected, hasWallet, deleteWalletData } = useWallet(); - const { isAuthenticated, isLoading: authLoading, signIn } = useAuth(); + const { isAuthenticated, isLoading: authLoading, authError, signIn } = useAuth(); const [userScreen, setUserScreen] = useState(null); // Derive screen from wallet state and user navigation @@ -80,17 +80,20 @@ export function WalletSection() {
-

Têketin Têk Çû

+

Teketin Tek Cu

- Ji kerema xwe piştrast bikin ku hûn vê app-ê di nav Telegram de vedikin + Ji kerema xwe pistrast bikin ku hun ve app-e di nav Telegram de vedikin

+ {authError && ( +

{authError}

+ )}
diff --git a/src/version.json b/src/version.json index 501b53b..2fc8714 100644 --- a/src/version.json +++ b/src/version.json @@ -1,5 +1,5 @@ { - "version": "1.0.120", - "buildTime": "2026-02-06T01:55:02.762Z", - "buildNumber": 1770342902762 + "version": "1.0.121", + "buildTime": "2026-02-06T16:48:42.195Z", + "buildNumber": 1770396522198 }