Revert "[FIX] Form re-rendering on RoomInfoEditView when app receives newer data from stream (#4220)" (#4340)

This reverts commit d47320733a.
This commit is contained in:
Diego Mello 2022-07-04 18:05:58 -03:00 committed by GitHub
parent 3072bbd5b3
commit f5167a2c94
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 14 additions and 2 deletions

View File

@ -6,6 +6,7 @@ import isEmpty from 'lodash/isEmpty';
import { Alert, Keyboard, ScrollView, Text, TextInput, TouchableOpacity, View, StyleSheet } from 'react-native'; import { Alert, Keyboard, ScrollView, Text, TextInput, TouchableOpacity, View, StyleSheet } from 'react-native';
import ImagePicker, { Image } from 'react-native-image-crop-picker'; import ImagePicker, { Image } from 'react-native-image-crop-picker';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import { Subscription } from 'rxjs';
import { deleteRoom } from '../../actions/room'; import { deleteRoom } from '../../actions/room';
import { themes } from '../../lib/constants'; import { themes } from '../../lib/constants';
@ -85,6 +86,7 @@ interface IRoomInfoEditViewProps extends IBaseScreen<ChatsStackParamList | Modal
class RoomInfoEditView extends React.Component<IRoomInfoEditViewProps, IRoomInfoEditViewState> { class RoomInfoEditView extends React.Component<IRoomInfoEditViewProps, IRoomInfoEditViewState> {
randomValue = random(15); randomValue = random(15);
private querySubscription: Subscription | undefined;
private room: TSubscriptionModel; private room: TSubscriptionModel;
private name: TextInput | null | undefined; private name: TextInput | null | undefined;
private description: TextInput | null | undefined; private description: TextInput | null | undefined;
@ -121,6 +123,12 @@ class RoomInfoEditView extends React.Component<IRoomInfoEditViewProps, IRoomInfo
this.loadRoom(); this.loadRoom();
} }
componentWillUnmount() {
if (this.querySubscription && this.querySubscription.unsubscribe) {
this.querySubscription.unsubscribe();
}
}
loadRoom = async () => { loadRoom = async () => {
const { const {
route, route,
@ -139,8 +147,12 @@ class RoomInfoEditView extends React.Component<IRoomInfoEditViewProps, IRoomInfo
try { try {
const db = database.active; const db = database.active;
const sub = await db.get('subscriptions').find(rid); const sub = await db.get('subscriptions').find(rid);
this.room = sub; const observable = sub.observe();
this.init(this.room);
this.querySubscription = observable.subscribe(data => {
this.room = data;
this.init(this.room);
});
const result = await hasPermission( const result = await hasPermission(
[ [