Bug: Room list query flickers on every connection state change
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 1/5
- Tiempo estimado
- Menos de una hora
- Aptitud para principiantes
- 86/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Tranquilo
- Stack tecnológico
- react-native, typescript
- Área
- mobile
Línea de trabajo
Lee app/views/RoomsListView/hooks/useSubscriptions.ts, centrándote en la llamada a useAppSelector y en el array de dependencias de useEffect. Limita la selección a la URL del servidor activo y verifica después que los cambios en el estado de la conexión ya no provoquen nuevas consultas de la lista de salas ni la recreación de la suscripción, mientras que los cambios del servidor sí lo sigan haciendo.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Description
useSubscriptions triggers active WatermelonDB room list queries every time connection status transitions (e.g., from connecting to connected, or loading to not loading), even if subscription records are unmodified. This leads to room list query flickering on every connection state change.
Cause
In app/views/RoomsListView/hooks/useSubscriptions.ts, the hook selects the entire state.server object:
const server = useAppSelector(state => state.server);
Since state.server contains fields like connecting, loading, and others that change as the connection state changes, selecting the entire state.server object causes the useEffect inside useSubscriptions.ts to trigger on every connection status change because its dependency array includes server:
}, [isGrouping, sortBy, useRealName, showUnread, showFavorites, groupByType, roles, server]);
This forces the hook to re-query WatermelonDB and recreate the subscription, causing a visible flicker in the room list on every connection state transition.
Solution
Narrow the selector in useSubscriptions.ts to select only the server URL instead of the entire server state:
const server = useAppSelector(state => state.server.server);
This ensures that the useEffect is only triggered when the active server actually changes, and not when the connection state of the current server transitions.
- Lenguaje dominante
- TypeScript
- Estrellas
- 2.4k
- Forks
- 1.5k
- Merge medio
- 1 d 15 h
- PR fusionados (30 d)
- 29
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de RocketChat/Rocket.Chat.ReactNative
-
[IMPROVEMENT] Remove redundant `await` on synchronous `userPreferences.getBool` in `getUsersPresence`Posiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertotype: feature
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
RocketChat/Rocket.Chat.ReactNative#7737 ·
Los mantenedores suelen responder en 1 día
-
UIKit modal: a viewSubmit response with no `type` field fails to close the modal on mobile (regression from #7057)Posiblemente ocupada @erikurt9 la tomó hace 106 días. Abiertotype: bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
RocketChat/Rocket.Chat.ReactNative#7503 · 3 comentarios · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
✅ tests 👷 ci type: feature
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
RocketChat/Rocket.Chat.ReactNative#7247 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
bug: goRoom navigates to broken RoomView after failed DM creation from searchPosiblemente ocupada @deepak0x la tomó hace 216 días. Abiertotype: bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
RocketChat/Rocket.Chat.ReactNative#7098 ·
Los mantenedores suelen responder en 1 día
-
bug: useSubscriptions re-queries WatermelonDB on every server connection state change, causing unnecessary rooms list flickerPosiblemente ocupada @deepak0x la tomó hace 226 días. Abiertotype: bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
RocketChat/Rocket.Chat.ReactNative#7093 ·
Los mantenedores suelen responder en 1 día
Todos los issues de RocketChat/Rocket.Chat.ReactNative
Issues similares
-
Bug: Broken RTL / BiDi text rendering when mixing Persian (Farsi) with English or numbersPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertobug
Dificultad 2/5 Medio día Aptitud para principiantes 68/100
amosblomqvist/learnharness#758 ·
Los mantenedores suelen responder en 2 días
-
Change WorkspacesAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
bitfocus/companion-module-renewedvision-propresenter-api#134 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
rcpch/digital-growth-charts-react-component-library#304 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
dsh-market/dsh-market#1210 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
trustjonathan/STUDY-HUB#13 ·