Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions app/containers/MessageBox/ReplyPreview.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import { View, Text, StyleSheet } from 'react-native';
import PropTypes from 'prop-types';
import moment from 'moment';
import { connect } from 'react-redux';
import isEqual from 'lodash/isEqual';

import Markdown from '../markdown';
import { CustomIcon } from '../../lib/Icons';
Expand Down Expand Up @@ -75,7 +74,7 @@ const ReplyPreview = React.memo(({
<CustomIcon name='close' color={themes[theme].auxiliaryText} size={20} style={styles.close} onPress={close} />
</View>
);
}, (prevProps, nextProps) => prevProps.replying === nextProps.replying && prevProps.theme === nextProps.theme && isEqual(prevProps.message, nextProps.message));
}, (prevProps, nextProps) => prevProps.replying === nextProps.replying && prevProps.theme === nextProps.theme && prevProps.message.id === nextProps.message.id);

ReplyPreview.propTypes = {
replying: PropTypes.bool,
Expand Down
4 changes: 2 additions & 2 deletions app/containers/message/Attachments.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import React from 'react';
import isEqual from 'lodash/isEqual';
import { dequal } from 'dequal';
import PropTypes from 'prop-types';

import Image from './Image';
Expand Down Expand Up @@ -28,7 +28,7 @@ const Attachments = React.memo(({
// eslint-disable-next-line react/no-array-index-key
return <Reply key={index} index={index} attachment={file} timeFormat={timeFormat} getCustomEmoji={getCustomEmoji} theme={theme} />;
});
}, (prevProps, nextProps) => isEqual(prevProps.attachments, nextProps.attachments) && prevProps.theme === nextProps.theme);
}, (prevProps, nextProps) => dequal(prevProps.attachments, nextProps.attachments) && prevProps.theme === nextProps.theme);

Attachments.propTypes = {
attachments: PropTypes.array,
Expand Down
6 changes: 3 additions & 3 deletions app/containers/message/Urls.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import {
} from 'react-native';
import PropTypes from 'prop-types';
import FastImage from '@rocket.chat/react-native-fast-image';
import isEqual from 'lodash/isEqual';
import { dequal } from 'dequal';

import Touchable from './Touchable';
import openLink from '../../utils/openLink';
Expand Down Expand Up @@ -112,7 +112,7 @@ const Url = React.memo(({ url, index, theme }) => {
</>
</Touchable>
);
}, (oldProps, newProps) => isEqual(oldProps.url, newProps.url) && oldProps.theme === newProps.theme);
}, (oldProps, newProps) => dequal(oldProps.url, newProps.url) && oldProps.theme === newProps.theme);

const Urls = React.memo(({ urls, theme }) => {
if (!urls || urls.length === 0) {
Expand All @@ -122,7 +122,7 @@ const Urls = React.memo(({ urls, theme }) => {
return urls.map((url, index) => (
<Url url={url} key={url.url} index={index} theme={theme} />
));
}, (oldProps, newProps) => isEqual(oldProps.urls, newProps.urls) && oldProps.theme === newProps.theme);
}, (oldProps, newProps) => dequal(oldProps.urls, newProps.urls) && oldProps.theme === newProps.theme);

UrlImage.propTypes = {
image: PropTypes.string
Expand Down
4 changes: 2 additions & 2 deletions app/presentation/RoomItem/LastMessage.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React from 'react';
import PropTypes from 'prop-types';
import isEqual from 'lodash/isEqual';
import { dequal } from 'dequal';

import I18n from '../../i18n';
import styles from './styles';
Expand Down Expand Up @@ -45,7 +45,7 @@ const formatMsg = ({
return `${ prefix }${ lastMessage.msg }`;
};

const arePropsEqual = (oldProps, newProps) => isEqual(oldProps, newProps);
const arePropsEqual = (oldProps, newProps) => dequal(oldProps, newProps);

const LastMessage = React.memo(({
lastMessage, type, showLastMessage, username, alert, useRealName, theme
Expand Down
4 changes: 2 additions & 2 deletions app/views/CreateDiscussionView/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import React from 'react';
import { connect } from 'react-redux';
import PropTypes from 'prop-types';
import { ScrollView, Text, Switch } from 'react-native';
import isEqual from 'lodash/isEqual';
import { dequal } from 'dequal';

import Loading from '../../containers/Loading';
import KeyboardView from '../../presentation/KeyboardView';
Expand Down Expand Up @@ -67,7 +67,7 @@ class CreateChannelView extends React.Component {
loading, failure, error, result, isMasterDetail
} = this.props;

if (!isEqual(this.state, prevState)) {
if (!dequal(this.state, prevState)) {
this.setHeader();
}

Expand Down
6 changes: 3 additions & 3 deletions app/views/ModalBlockView.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React from 'react';
import { StyleSheet, View } from 'react-native';
import PropTypes from 'prop-types';
import isEqual from 'lodash/isEqual';
import { dequal } from 'dequal';
import { connect } from 'react-redux';
import { KeyboardAwareScrollView } from '@codler/react-native-keyboard-aware-scroll-view';

Expand Down Expand Up @@ -95,10 +95,10 @@ class ModalBlockView extends React.Component {
}

shouldComponentUpdate(nextProps, nextState) {
if (!isEqual(nextProps, this.props)) {
if (!dequal(nextProps, this.props)) {
return true;
}
if (!isEqual(nextState, this.state)) {
if (!dequal(nextState, this.state)) {
return true;
}

Expand Down
8 changes: 4 additions & 4 deletions app/views/ProfileView/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import prompt from 'react-native-prompt-android';
import SHA256 from 'js-sha256';
import ImagePicker from 'react-native-image-crop-picker';
import RNPickerSelect from 'react-native-picker-select';
import isEqual from 'lodash/isEqual';
import { dequal } from 'dequal';
import omit from 'lodash/omit';

import Touch from '../../utils/touch';
Expand Down Expand Up @@ -91,16 +91,16 @@ class ProfileView extends React.Component {
* it's resetting the avatar right after
* select some image from gallery.
*/
if (!isEqual(omit(user, ['status']), omit(nextProps.user, ['status']))) {
if (!dequal(omit(user, ['status']), omit(nextProps.user, ['status']))) {
this.init(nextProps.user);
}
}

shouldComponentUpdate(nextProps, nextState) {
if (!isEqual(nextState, this.state)) {
if (!dequal(nextState, this.state)) {
return true;
}
if (!isEqual(nextProps, this.props)) {
if (!dequal(nextProps, this.props)) {
return true;
}
return false;
Expand Down
6 changes: 3 additions & 3 deletions app/views/RoomInfoEditView/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { connect } from 'react-redux';
import equal from 'deep-equal';
import { BLOCK_CONTEXT } from '@rocket.chat/ui-kit';
import ImagePicker from 'react-native-image-crop-picker';
import isEqual from 'lodash/isEqual';
import { dequal } from 'dequal';
import isEmpty from 'lodash/isEmpty';
import lt from 'semver/functions/lt';
import coerce from 'semver/functions/coerce';
Expand Down Expand Up @@ -179,7 +179,7 @@ class RoomInfoEditView extends React.Component {
&& room.t === 'p' === t
&& room.ro === ro
&& room.reactWhenReadOnly === reactWhenReadOnly
&& isEqual(room.sysMes, systemMessages)
&& dequal(room.sysMes, systemMessages)
&& enableSysMes === (room.sysMes && room.sysMes.length > 0)
&& room.encrypted === encrypted
&& isEmpty(avatar)
Expand Down Expand Up @@ -239,7 +239,7 @@ class RoomInfoEditView extends React.Component {
params.reactWhenReadOnly = reactWhenReadOnly;
}

if (!isEqual(room.sysMes, systemMessages)) {
if (!dequal(room.sysMes, systemMessages)) {
params.systemMessages = systemMessages;
}

Expand Down
10 changes: 5 additions & 5 deletions app/views/RoomView/List.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { FlatList, RefreshControl } from 'react-native';
import PropTypes from 'prop-types';
import { Q } from '@nozbe/watermelondb';
import moment from 'moment';
import isEqual from 'lodash/isEqual';
import { dequal } from 'dequal';

import styles from './styles';
import database from '../../lib/database';
Expand Down Expand Up @@ -89,21 +89,21 @@ class List extends React.Component {
if (refreshing !== nextState.refreshing) {
return true;
}
if (!isEqual(hideSystemMessages, nextProps.hideSystemMessages)) {
if (!dequal(hideSystemMessages, nextProps.hideSystemMessages)) {
return true;
}
if (!isEqual(tunread, nextProps.tunread)) {
if (!dequal(tunread, nextProps.tunread)) {
return true;
}
if (!isEqual(ignored, nextProps.ignored)) {
if (!dequal(ignored, nextProps.ignored)) {
return true;
}
return false;
}

componentDidUpdate(prevProps) {
const { hideSystemMessages } = this.props;
if (!isEqual(hideSystemMessages, prevProps.hideSystemMessages)) {
if (!dequal(hideSystemMessages, prevProps.hideSystemMessages)) {
this.reload();
}
}
Expand Down
8 changes: 4 additions & 4 deletions app/views/RoomView/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { sanitizedRaw } from '@nozbe/watermelondb/RawRecord';
import moment from 'moment';
import * as Haptics from 'expo-haptics';
import { Q } from '@nozbe/watermelondb';
import isEqual from 'lodash/isEqual';
import { dequal } from 'dequal';
import { withSafeAreaInsets } from 'react-native-safe-area-context';

import Touch from '../../utils/touch';
Expand Down Expand Up @@ -205,10 +205,10 @@ class RoomView extends React.Component {
if (stateUpdated) {
return true;
}
if (!isEqual(nextProps.insets, insets)) {
if (!dequal(nextProps.insets, insets)) {
return true;
}
return roomAttrsUpdate.some(key => !isEqual(nextState.roomUpdate[key], roomUpdate[key]));
return roomAttrsUpdate.some(key => !dequal(nextState.roomUpdate[key], roomUpdate[key]));
}

componentDidUpdate(prevProps, prevState) {
Expand All @@ -229,7 +229,7 @@ class RoomView extends React.Component {
}
// If it's a livechat room
if (this.t === 'l') {
if (!isEqual(prevState.roomUpdate.visitor, roomUpdate.visitor)) {
if (!dequal(prevState.roomUpdate.visitor, roomUpdate.visitor)) {
this.setHeader();
}
}
Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@
"commonmark": "git+https://github.com/RocketChat/commonmark.js.git",
"commonmark-react-renderer": "git+https://github.com/RocketChat/commonmark-react-renderer.git",
"deep-equal": "2.0.3",
"dequal": "^2.0.2",
"ejson": "2.2.0",
"eslint-config-airbnb": "^18.1.0",
"expo-apple-authentication": "^2.2.1",
Expand Down
7 changes: 5 additions & 2 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -5871,6 +5871,11 @@ dequal@^1.0.0:
resolved "https://registry.yarnpkg.com/dequal/-/dequal-1.0.0.tgz#41c6065e70de738541c82cdbedea5292277a017e"
integrity sha512-/Nd1EQbQbI9UbSHrMiKZjFLrXSnU328iQdZKPQf78XQI6C+gutkFUeoHpG5J08Ioa6HeRbRNFpSIclh1xyG0mw==

dequal@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.2.tgz#85ca22025e3a87e65ef75a7a437b35284a7e319d"
integrity sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==

des.js@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843"
Expand Down Expand Up @@ -13832,8 +13837,6 @@ ripemd160@^2.0.0, ripemd160@^2.0.1:
rn-extensions-share@RocketChat/rn-extensions-share:
version "2.4.1"
resolved "https://codeload.github.com/RocketChat/rn-extensions-share/tar.gz/4d7c0e4c2f300e4fb116af7b7cc0dbbc8169150c"
dependencies:
react-native "^0.63.1"

rn-fetch-blob@0.12.0:
version "0.12.0"
Expand Down