fix and update

This commit is contained in:
lendry
2026-06-30 23:18:53 +03:00
parent 6ee3ffe0a5
commit 4b2ade9354
6 changed files with 17 additions and 41 deletions

View File

@@ -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);

View File

@@ -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(

View File

@@ -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);