feat: add share dialog and typing indicator in messages
- Implemented `ShareDialog` component for sharing content directly with other users. - Added typing indicator when a user is composing a message in an active conversation. - Updated `SocketProvider` to handle improved connection management and user status updates. - Enhanced the messages UI with real-time online status and typing indicators for better feedback.
This commit is contained in:
@@ -24,15 +24,25 @@ export function SocketProvider({ children }: { children: React.ReactNode }) {
|
||||
React.useEffect(() => {
|
||||
if (isAuthenticated) {
|
||||
const apiUrl = process.env.NEXT_PUBLIC_API_URL || "http://localhost:3000";
|
||||
|
||||
// Initialisation du socket avec configuration optimisée pour la production
|
||||
const socketInstance = io(apiUrl, {
|
||||
withCredentials: true,
|
||||
transports: ["websocket"],
|
||||
transports: ["websocket"], // Recommandé pour éviter les problèmes de sticky sessions
|
||||
reconnectionAttempts: 5,
|
||||
reconnectionDelay: 1000,
|
||||
});
|
||||
|
||||
socketInstance.on("connect", () => {
|
||||
console.log("WebSocket connected to:", apiUrl);
|
||||
setIsConnected(true);
|
||||
});
|
||||
|
||||
socketInstance.on("connect_error", (error) => {
|
||||
console.error("WebSocket connection error:", error);
|
||||
// Si le websocket pur échoue, on peut tenter le polling en fallback (optionnel)
|
||||
});
|
||||
|
||||
socketInstance.on("disconnect", () => {
|
||||
setIsConnected(false);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user