From 4b2ade935442fb2e1e4a7020f642ebed1a471b9b Mon Sep 17 00:00:00 2001 From: lendry Date: Tue, 30 Jun 2026 23:18:53 +0300 Subject: [PATCH] fix and update --- apps/frontend/components/id/auth-provider.tsx | 4 +++- .../id/public-settings-provider.tsx | 11 ++-------- .../notifications/realtime-provider.tsx | 9 +------- apps/frontend/lib/api.ts | 21 ++++--------------- apps/frontend/lib/resilient-media-fetch.ts | 3 --- install.sh | 10 ++++++--- 6 files changed, 17 insertions(+), 41 deletions(-) diff --git a/apps/frontend/components/id/auth-provider.tsx b/apps/frontend/components/id/auth-provider.tsx index 796f3a4..39c6ed8 100644 --- a/apps/frontend/components/id/auth-provider.tsx +++ b/apps/frontend/components/id/auth-provider.tsx @@ -142,7 +142,9 @@ export function AuthProvider({ children }: { children: React.ReactNode }) { } const onReady = () => setIsApiReady(true); const onNotReady = () => { - setIsApiReady(false); + if (!initialBootstrapDoneRef.current) { + setIsApiReady(false); + } }; const unsubReady = subscribeApiReady(onReady); const unsubNotReady = subscribeApiNotReady(onNotReady); diff --git a/apps/frontend/components/id/public-settings-provider.tsx b/apps/frontend/components/id/public-settings-provider.tsx index 469a5a9..ca4cb11 100644 --- a/apps/frontend/components/id/public-settings-provider.tsx +++ b/apps/frontend/components/id/public-settings-provider.tsx @@ -1,7 +1,7 @@ 'use client'; import { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react'; -import { apiFetch, ensureApiGatewayReady, isApiGatewayReady, subscribeApiReady } from '@/lib/api'; +import { apiFetch } from '@/lib/api'; interface PublicSettingsContextValue { projectName: string; @@ -27,7 +27,6 @@ export function PublicSettingsProvider({ children }: { children: React.ReactNode const refreshPublicSettings = useCallback(async () => { try { - await ensureApiGatewayReady(); const response = await apiFetch<{ settings: Array<{ key: string; value: string }> }>('/settings/public'); const map = Object.fromEntries((response.settings ?? []).map((item) => [item.key, item.value])); setSettings(map); @@ -39,13 +38,7 @@ export function PublicSettingsProvider({ children }: { children: React.ReactNode }, []); useEffect(() => { - if (isApiGatewayReady()) { - void refreshPublicSettings(); - return; - } - return subscribeApiReady(() => { - void refreshPublicSettings(); - }); + void refreshPublicSettings(); }, [refreshPublicSettings]); const value = useMemo( diff --git a/apps/frontend/components/notifications/realtime-provider.tsx b/apps/frontend/components/notifications/realtime-provider.tsx index 354d0e2..4c6edaa 100644 --- a/apps/frontend/components/notifications/realtime-provider.tsx +++ b/apps/frontend/components/notifications/realtime-provider.tsx @@ -2,7 +2,7 @@ import * as React from 'react'; import { useAuth } from '@/components/id/auth-provider'; -import { ensureApiGatewayReady, fetchUnreadNotificationCount, getWsUrl, type ChatMessage } from '@/lib/api'; +import { fetchUnreadNotificationCount, getWsUrl, type ChatMessage } from '@/lib/api'; import { dispatchAvatarUpdated, dispatchChatRoomAvatarUpdated } from '@/lib/avatar-events'; const WS_RECONNECT_BASE_MS = 2_000; @@ -90,13 +90,6 @@ export function RealtimeProvider({ children }: { children: React.ReactNode }) { } async function connect() { - if (cancelled) return; - try { - await ensureApiGatewayReady(); - } catch { - scheduleReconnect(); - return; - } if (cancelled) return; const url = `${getWsUrl()}?token=${encodeURIComponent(token!)}`; const socket = new WebSocket(url); diff --git a/apps/frontend/lib/api.ts b/apps/frontend/lib/api.ts index f1446ca..f4dd580 100644 --- a/apps/frontend/lib/api.ts +++ b/apps/frontend/lib/api.ts @@ -545,9 +545,6 @@ export async function refreshAuthSession(): Promise { export async function syncFedcmSession(accessToken?: string | null) { const token = resolveAccessToken(accessToken); if (typeof window === 'undefined' || !token) return; - if (!isApiGatewayReady()) { - await ensureApiGatewayReady(); - } try { await apiFetch<{ synced: boolean }>( '/fedcm/session/sync', @@ -680,7 +677,7 @@ export function buildSystemSettingPayload(setting: Pick { let lastNetworkError: unknown; for (let attempt = 0; attempt < GATEWAY_RETRY_ATTEMPTS; attempt++) { @@ -843,24 +840,14 @@ async function fetchWithGatewayRetry(url: string, init: RequestInit): Promise