diff --git a/package.json b/package.json
index ce78fac0eaf..b32fa2c53ca 100644
--- a/package.json
+++ b/package.json
@@ -202,7 +202,6 @@
"react-style-proptype": "^3.2.2",
"readable-stream": "^1.0.33",
"reanimated-bottom-sheet": "^1.0.0-alpha.18",
- "recompact": "^3.4.0",
"recyclerlistview": "3.0.0",
"redux": "^4.0.5",
"redux-devtools-extension": "^2.13.8",
diff --git a/src/App.js b/src/App.js
index d09649a76bc..3af64114b98 100644
--- a/src/App.js
+++ b/src/App.js
@@ -29,7 +29,6 @@ import { SafeAreaProvider } from 'react-native-safe-area-context';
import { enableScreens } from 'react-native-screens';
import VersionNumber from 'react-native-version-number';
import { connect, Provider } from 'react-redux';
-import { compose, withProps } from 'recompact';
import PortalConsumer from './components/PortalConsumer';
import { FlexItem } from './components/layout';
import { OfflineToast } from './components/toasts';
@@ -309,16 +308,16 @@ class App extends Component {
);
}
-const AppWithRedux = compose(
- withProps({ store }),
- connect(({ appState: { walletReady } }) => ({ walletReady }), {
+const AppWithRedux = connect(
+ ({ appState: { walletReady } }) => ({ walletReady }),
+ {
requestsForTopic,
- })
+ }
)(App);
const AppWithCodePush = CodePush({
checkFrequency: CodePush.CheckFrequency.ON_APP_RESUME,
installMode: CodePush.InstallMode.ON_NEXT_RESUME,
-})(AppWithRedux);
+})(() => );
AppRegistry.registerComponent('Rainbow', () => AppWithCodePush);
diff --git a/src/components/activity-list/ActivityList.js b/src/components/activity-list/ActivityList.js
index 0b7cb1f6637..2db92311ba2 100644
--- a/src/components/activity-list/ActivityList.js
+++ b/src/components/activity-list/ActivityList.js
@@ -1,6 +1,5 @@
-import React, { useEffect, useState } from 'react';
+import React, { useEffect, useMemo, useState } from 'react';
import { SectionList } from 'react-native';
-import { mapProps } from 'recompact';
import styled from 'styled-components';
import { useTheme } from '../../context/ThemeContext';
import networkTypes from '../../helpers/networkTypes';
@@ -73,8 +72,8 @@ const ActivityList = ({
hasPendingTransaction,
header,
nativeCurrency,
- pendingTransactionsCount,
sections,
+ requests,
transactionsCount,
addCashAvailable,
isEmpty,
@@ -85,6 +84,15 @@ const ActivityList = ({
nextPage,
remainingItemsLabel,
}) => {
+ const pendingTransactionsCount = useMemo(() => {
+ let currentPendingTransactionsCount = 0;
+ const pendingTxSection = sections[requests?.length ? 1 : 0];
+
+ if (pendingTxSection && pendingTxSection.title === 'Pending') {
+ currentPendingTransactionsCount = pendingTxSection.data.length;
+ }
+ return currentPendingTransactionsCount;
+ }, [sections, requests]);
return network === networkTypes.mainnet || sections.length ? (
recyclerListView ? (
{
- let pendingTransactionsCount = 0;
- const pendingTxSection = sections[requests?.length ? 1 : 0];
-
- if (pendingTxSection && pendingTxSection.title === 'Pending') {
- pendingTransactionsCount = pendingTxSection.data.length;
- }
-
- return {
- ...props,
- nativeCurrency,
- pendingTransactionsCount,
- sections,
- };
-})(ActivityList);
+export default ActivityList;
diff --git a/src/components/add-cash/AddCashStatus.js b/src/components/add-cash/AddCashStatus.js
index 4a05b040711..a460d21bcd6 100644
--- a/src/components/add-cash/AddCashStatus.js
+++ b/src/components/add-cash/AddCashStatus.js
@@ -4,7 +4,7 @@ import PropTypes from 'prop-types';
import React, { Fragment, useEffect, useMemo, useRef } from 'react';
import { StyleSheet } from 'react-native';
import { Transition, Transitioning } from 'react-native-reanimated';
-import { withProps } from 'recompact';
+import styled from 'styled-components';
import jumpingDaiAnimation from '../../assets/lottie/jumping-dai.json';
import jumpingEthAnimation from '../../assets/lottie/jumping-eth.json';
import TransactionStatusTypes from '../../helpers/transactionStatusTypes';
@@ -24,12 +24,12 @@ import SupportButton from './SupportButton';
import Routes from '@rainbow-me/routes';
import { position } from '@rainbow-me/styles';
-const StatusMessageText = withProps({
+const StatusMessageText = styled(Text).attrs({
align: 'center',
lineHeight: 30,
size: 23,
weight: 'bold',
-})(Text);
+})``;
const sx = StyleSheet.create({
container: {
diff --git a/src/components/asset-list/AssetListItemSkeleton.js b/src/components/asset-list/AssetListItemSkeleton.js
index 946a75ca713..bdec434880f 100644
--- a/src/components/asset-list/AssetListItemSkeleton.js
+++ b/src/components/asset-list/AssetListItemSkeleton.js
@@ -9,7 +9,6 @@ import Animated, {
timing,
Value,
} from 'react-native-reanimated';
-import { withProps } from 'recompact';
import styled from 'styled-components';
import { withThemeContext } from '../../context/ThemeContext';
import { deviceUtils } from '../../utils';
@@ -35,7 +34,7 @@ const FakeAvatar = styled.View`
border-radius: 20;
`;
-const FakeRow = withProps({
+const FakeRow = styled(Row).attrs({
align: 'flex-end',
flex: 0,
height: 10,
diff --git a/src/components/coin-row/CollectiblesSendRow.js b/src/components/coin-row/CollectiblesSendRow.js
index 535b194b557..d30fdcc45c7 100644
--- a/src/components/coin-row/CollectiblesSendRow.js
+++ b/src/components/coin-row/CollectiblesSendRow.js
@@ -1,10 +1,9 @@
import PropTypes from 'prop-types';
-import React, { Fragment } from 'react';
-import { compose, onlyUpdateForKeys, shouldUpdate, withProps } from 'recompact';
+import React, { Fragment, useMemo } from 'react';
import { css } from 'styled-components';
-import { useTheme, withThemeContext } from '../../context/ThemeContext';
+import { useTheme } from '../../context/ThemeContext';
import { buildAssetUniqueIdentifier } from '../../helpers/assets';
-import { deviceUtils } from '../../utils';
+import { deviceUtils, magicMemo } from '../../utils';
import Divider from '../Divider';
import { ButtonPressAnimation } from '../animations';
import { RequestVendorLogoIcon } from '../coin-icon';
@@ -44,23 +43,19 @@ const TopRow = ({ id, name, selected }) => (
);
-const enhanceUniqueTokenCoinIcon = onlyUpdateForKeys([
- 'background',
- 'image_thumbnail_url',
-]);
-
-const UniqueTokenCoinIcon = enhanceUniqueTokenCoinIcon(
- withThemeContext(
- ({
- asset_contract: { name },
- background,
- image_thumbnail_url,
- shouldPrioritizeImageLoading,
- ...props
- }) => (
+const UniqueTokenCoinIcon = magicMemo(
+ ({
+ asset_contract: { name },
+ background,
+ image_thumbnail_url,
+ shouldPrioritizeImageLoading,
+ ...props
+ }) => {
+ const { colors } = useTheme();
+ return (
- )
- )
+ );
+ },
+ ['background', 'image_thumbnail_url']
);
UniqueTokenCoinIcon.propTypes = {
@@ -80,29 +76,28 @@ UniqueTokenCoinIcon.propTypes = {
shouldPrioritizeImageLoading: PropTypes.bool,
};
-const buildSubtitleForUniqueToken = ({ item }) => ({
- subtitle: item.name
- ? `${item.asset_contract.name} #${item.id}`
- : item.asset_contract.name,
-});
+const arePropsEqual = (props, nextProps) =>
+ buildAssetUniqueIdentifier(props.item) !==
+ buildAssetUniqueIdentifier(nextProps.item);
-const enhance = compose(
- withProps(buildSubtitleForUniqueToken),
- shouldUpdate((props, nextProps) => {
- const itemIdentifier = buildAssetUniqueIdentifier(props.item);
- const nextItemIdentifier = buildAssetUniqueIdentifier(nextProps.item);
+// eslint-disable-next-line react/display-name
+const CollectiblesSendRow = React.memo(
+ ({ item, isFirstRow, onPress, selected, testID, ...props }) => {
+ const { colors } = useTheme();
+ const subtitle = useMemo(
+ () =>
+ item.name
+ ? `${item.asset_contract.name} #${item.id}`
+ : item.asset_contract.name,
- return itemIdentifier !== nextItemIdentifier;
- })
-);
+ [item.asset_contract.name, item.id, item.name]
+ );
-const CollectiblesSendRow = enhance(
- withThemeContext(
- ({ item, isFirstRow, onPress, selected, subtitle, testID, ...props }) => (
+ return (
{isFirstRow && (
-
+
)}
@@ -119,8 +114,9 @@ const CollectiblesSendRow = enhance(
/>
- )
- )
+ );
+ },
+ arePropsEqual
);
CollectiblesSendRow.propTypes = {
diff --git a/src/components/copy-tooltip/CopyTooltip.ios.js b/src/components/copy-tooltip/CopyTooltip.ios.js
index 6a3fe38d56d..9c83ca84b73 100644
--- a/src/components/copy-tooltip/CopyTooltip.ios.js
+++ b/src/components/copy-tooltip/CopyTooltip.ios.js
@@ -1,53 +1,24 @@
import Clipboard from '@react-native-community/clipboard';
-import PropTypes from 'prop-types';
-import React, { PureComponent } from 'react';
+import React, { useCallback, useEffect, useRef } from 'react';
import ToolTip from 'react-native-tooltip';
-import { compose, onlyUpdateForKeys } from 'recompact';
-import { withThemeContext } from '../../context/ThemeContext';
-import { withNavigation } from '../../navigation/Navigation';
-class CopyTooltip extends PureComponent {
- static propTypes = {
- activeOpacity: PropTypes.number,
- navigation: PropTypes.object,
- setSafeTimeout: PropTypes.func,
- textToCopy: PropTypes.string,
- tooltipText: PropTypes.string,
- };
-
- static defaultProps = {
- activeOpacity: 0.666,
- tooltipText: 'Copy',
- };
-
- componentWillUnmount = () => this.handleHideTooltip();
-
- tooltip = null;
-
- handleCopy = () => Clipboard.setString(this.props.textToCopy);
-
- handleHideTooltip = () => this.tooltip.hideMenu();
-
- handlePress = () => this.tooltip.showMenu();
-
- handleRef = ref => {
- this.tooltip = ref;
- };
-
- render = () => (
+function CopyTooltip({ textToCopy, activeOpacity, tooltipText, ...props }) {
+ const handleCopy = useCallback(() => Clipboard.setString(textToCopy), [
+ textToCopy,
+ ]);
+ const { colors } = useTheme();
+ const ref = useRef();
+ useEffect(() => ref.current.hideMenu, []);
+ return (
ref.current.showMenu()}
+ ref={ref}
+ underlayColor={colors.transparent}
/>
);
}
-export default compose(
- withNavigation,
- withThemeContext,
- onlyUpdateForKeys(['textToCopy', 'tooltipText'])
-)(CopyTooltip);
+export default CopyTooltip;
diff --git a/src/components/exchange/SlippageWarning.js b/src/components/exchange/SlippageWarning.js
index 837223f0750..248583a5dd2 100644
--- a/src/components/exchange/SlippageWarning.js
+++ b/src/components/exchange/SlippageWarning.js
@@ -1,9 +1,6 @@
import AnimateNumber from '@bankify/react-native-animate-number';
-import PropTypes from 'prop-types';
import React from 'react';
-import { compose, onlyUpdateForKeys, withProps } from 'recompact';
import styled from 'styled-components';
-import { withThemeContext } from '../../context/ThemeContext';
import { convertBipsToPercentage } from '../../helpers/utilities';
import { Icon } from '../icons';
import { Row, RowWithMargins } from '../layout';
@@ -31,50 +28,31 @@ const renderSlippageText = displayValue => (
);
-const enhance = compose(
- withThemeContext,
- onlyUpdateForKeys(['slippage']),
- withProps(({ slippage, colors }) => {
- const isSevere = slippage >= SevereSlippageThresholdInBips;
-
- return {
- isSevere,
- severityColor: isSevere ? colors.red : colors.orangeLight,
- showWarning: slippage >= SlippageWarningThresholdInBips,
- };
- })
-);
-
const AnimatedNumberComponent = ios ? AnimateNumber : AnimatedNumberAndroid;
-const SlippageWarning = enhance(
- ({ isSevere, severityColor, showWarning, slippage }) =>
- showWarning ? (
-
-
-
-
-
-
- {isSevere ? 'Please swap less' : 'Consider swapping less'}
-
-
- ) : null
-);
-
-SlippageWarning.propTypes = {
- isSevere: PropTypes.bool,
- onPress: PropTypes.func,
- severityColor: PropTypes.string,
- showWarning: PropTypes.bool,
- slippage: PropTypes.string,
+const SlippageWarning = ({ slippage }) => {
+ const { colors } = useTheme();
+ const isSevere = slippage >= SevereSlippageThresholdInBips;
+ const severityColor = isSevere ? colors.red : colors.orangeLight;
+ const showWarning = slippage >= SlippageWarningThresholdInBips;
+ return showWarning ? (
+
+
+
+
+
+
+ {isSevere ? 'Please swap less' : 'Consider swapping less'}
+
+
+ ) : null;
};
export default SlippageWarning;
diff --git a/src/components/list/ListItem.js b/src/components/list/ListItem.js
index 4a298b7ab0e..1f767d96077 100644
--- a/src/components/list/ListItem.js
+++ b/src/components/list/ListItem.js
@@ -1,8 +1,5 @@
import { isString } from 'lodash';
-import PropTypes from 'prop-types';
-import React from 'react';
-import { compose, onlyUpdateForKeys, withHandlers } from 'recompact';
-import { withThemeContext } from '../../context/ThemeContext';
+import React, { useCallback } from 'react';
import { ButtonPressAnimation } from '../animations';
import { Icon } from '../icons';
import { Centered, Row, RowWithMargins } from '../layout';
@@ -18,43 +15,26 @@ const renderIcon = icon =>
icon
);
-const propTypes = {
- activeOpacity: PropTypes.number,
- children: PropTypes.node,
- icon: PropTypes.node,
- iconMargin: PropTypes.number,
- justify: PropTypes.bool,
- label: PropTypes.string.isRequired,
- onPress: PropTypes.func,
-};
-
-const enhance = compose(
- withThemeContext,
- onlyUpdateForKeys(Object.keys(propTypes)),
- withHandlers({
- onPress: ({ onPress, value }) => () => {
- if (onPress) {
- onPress(value);
- }
- },
- })
-);
-
-const ListItem = enhance(
- ({
- activeOpacity,
- colors,
- children,
- justify,
- icon,
- iconMargin,
- label,
- onPress,
- scaleTo = 0.975,
- testID,
- disabled,
- ...props
- }) => (
+const ListItem = ({
+ activeOpacity,
+ children,
+ justify,
+ icon,
+ iconMargin,
+ label,
+ scaleTo = 0.975,
+ testID,
+ disabled,
+ ...props
+}) => {
+ const onPress = useCallback(() => {
+ if (props.onPress) {
+ props.onPress(props.value);
+ }
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [props.onPress, props.value]);
+ const { colors } = useTheme();
+ return (
{children}}
- )
-);
-
-ListItem.propTypes = propTypes;
+ );
+};
ListItem.height = ListItemHeight;
diff --git a/src/components/list/ListItemArrowGroup.js b/src/components/list/ListItemArrowGroup.js
index ebc9152d5e5..172d4f1d974 100644
--- a/src/components/list/ListItemArrowGroup.js
+++ b/src/components/list/ListItemArrowGroup.js
@@ -1,39 +1,40 @@
import PropTypes from 'prop-types';
import React from 'react';
import { Image } from 'react-native';
-import { pure } from 'recompact';
import Caret from '../../assets/family-dropdown-arrow.png';
-import { withThemeContext } from '../../context/ThemeContext';
import { RowWithMargins } from '../layout';
import { Text } from '../text';
-const ListItemArrowGroup = ({ children, colors }) => (
-
- {typeof children === 'string' ? (
-
- {children}
-
- ) : (
- children
- )}
-
-
-);
+const ListItemArrowGroup = ({ children }) => {
+ const { colors } = useTheme();
+ return (
+
+ {typeof children === 'string' ? (
+
+ {children}
+
+ ) : (
+ children
+ )}
+
+
+ );
+};
ListItemArrowGroup.propTypes = {
children: PropTypes.node,
};
-export default pure(withThemeContext(ListItemArrowGroup));
+export default React.memo(ListItemArrowGroup);
diff --git a/src/components/radio-list/RadioListItem.js b/src/components/radio-list/RadioListItem.js
index 403ae359fc5..88212fee6d0 100644
--- a/src/components/radio-list/RadioListItem.js
+++ b/src/components/radio-list/RadioListItem.js
@@ -1,6 +1,4 @@
-import PropTypes from 'prop-types';
-import React from 'react';
-import { withHandlers } from 'recompact';
+import React, { useCallback } from 'react';
import styled from 'styled-components';
import Icon from '../icons/Icon';
import { ListItem } from '../list';
@@ -17,24 +15,18 @@ const CheckmarkIcon = styled(Icon).attrs(({ theme: { colors } }) => ({
right: 0;
`;
-const RadioListItem = ({ disabled, onPress, selected, ...props }) => (
-
- {selected && }
-
-);
-
-RadioListItem.propTypes = {
- ...ListItem.propTypes,
- disabled: PropTypes.bool,
- onPress: PropTypes.func.isRequired,
- selected: PropTypes.bool,
- value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
+const RadioListItem = ({ disabled, selected, ...props }) => {
+ const onPress = useCallback(() => {
+ if (props.onPress && !props.disabled) {
+ props.onPress(props.value);
+ }
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [props.value, props.onPress, disabled]);
+ return (
+
+ {selected && }
+
+ );
};
-export default withHandlers({
- onPress: ({ disabled, onPress, value }) => () => {
- if (onPress && !disabled) {
- onPress(value);
- }
- },
-})(RadioListItem);
+export default RadioListItem;
diff --git a/src/components/walletconnect-list/WalletConnectLearnMoreButton.js b/src/components/walletconnect-list/WalletConnectLearnMoreButton.js
index 949dfad5526..bf7b44b1d2d 100644
--- a/src/components/walletconnect-list/WalletConnectLearnMoreButton.js
+++ b/src/components/walletconnect-list/WalletConnectLearnMoreButton.js
@@ -1,16 +1,19 @@
import { debounce } from 'lodash';
-import PropTypes from 'prop-types';
import React from 'react';
import { Linking } from 'react-native';
-import { compose, pure, withHandlers } from 'recompact';
-import { withThemeContext } from '../../context/ThemeContext';
import Divider from '../Divider';
import { ButtonPressAnimation } from '../animations';
import { Centered, Row } from '../layout';
import { Text } from '../text';
import { padding } from '@rainbow-me/styles';
-const WalletConnectLearnMoreButton = ({ onPressLearnMore, colors }) => {
+const openWalletConnectWebsite = () =>
+ Linking.openURL('https://walletconnect.org/');
+
+const onPressLearnMore = () => debounce(openWalletConnectWebsite, 200);
+
+const WalletConnectLearnMoreButton = () => {
+ const { colors } = useTheme();
return (
{
);
};
-WalletConnectLearnMoreButton.propTypes = {
- onPressLearnMore: PropTypes.func,
-};
-
-const openWalletConnectWebsite = () =>
- Linking.openURL('https://walletconnect.org/');
-
-export default compose(
- pure,
- withThemeContext,
- withHandlers({
- onPressLearnMore: () => debounce(openWalletConnectWebsite, 200),
- })
-)(WalletConnectLearnMoreButton);
+export default WalletConnectLearnMoreButton;
diff --git a/src/helpers/buildWalletSections.js b/src/helpers/buildWalletSections.js
index 0c7f90faef2..7160fc4d7ab 100644
--- a/src/helpers/buildWalletSections.js
+++ b/src/helpers/buildWalletSections.js
@@ -10,13 +10,13 @@ import {
} from 'lodash';
import React from 'react';
import { LayoutAnimation } from 'react-native';
-import { compose, withHandlers } from 'recompact';
import { createSelector } from 'reselect';
import { AssetListItemSkeleton } from '../components/asset-list';
import { BalanceCoinRow } from '../components/coin-row';
import { UniswapInvestmentRow } from '../components/investment-cards';
import { CollectibleTokenFamily } from '../components/token-family';
import { withNavigation } from '../navigation/Navigation';
+import { compose, withHandlers } from '../utils/recompactAdapters';
import { buildCoinsList, buildUniqueTokenList } from './assets';
import networkTypes from './networkTypes';
import { add, convertAmountToNativeDisplay, multiply } from './utilities';
diff --git a/src/utils/recompactAdapters.js b/src/utils/recompactAdapters.js
new file mode 100644
index 00000000000..74e6931b269
--- /dev/null
+++ b/src/utils/recompactAdapters.js
@@ -0,0 +1,23 @@
+import React, { useCallback } from 'react';
+
+export const withHandlers = handlers => Component =>
+ function WithHandlers(props) {
+ const traversedHandlers = Object.keys(handlers).reduce((acc, key) => {
+ // eslint-disable-next-line react-hooks/rules-of-hooks,react-hooks/exhaustive-deps
+ acc[key] = useCallback(handlers[key](props), [Object.values(props)]);
+ return acc;
+ }, {});
+ return ;
+ };
+
+export function compose(...funcs) {
+ if (funcs.length === 0) {
+ return x => x;
+ }
+
+ if (funcs.length === 1) {
+ return funcs[0];
+ }
+
+ return funcs.reduce((a, b) => (...args) => a(b(...args)));
+}
diff --git a/yarn.lock b/yarn.lock
index 9c45b63c5bd..c8efdbb9063 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -6210,7 +6210,7 @@ fbjs-scripts@^1.1.0:
semver "^5.1.0"
through2 "^2.0.0"
-fbjs@^0.8.17, fbjs@^0.8.9:
+fbjs@^0.8.9:
version "0.8.17"
resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd"
integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=
@@ -6980,7 +6980,7 @@ hoist-non-react-statics@^2.3.1:
resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz#c5903cf409c0dfd908f388e619d86b9c1174cb47"
integrity sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==
-hoist-non-react-statics@^3.0.0, hoist-non-react-statics@^3.0.1, hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2:
+hoist-non-react-statics@^3.0.0, hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2:
version "3.3.2"
resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45"
integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==
@@ -7474,7 +7474,7 @@ is-extendable@^0.1.0, is-extendable@^0.1.1:
resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=
-is-extendable@^1.0.0, is-extendable@^1.0.1:
+is-extendable@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4"
integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==
@@ -10003,13 +10003,6 @@ object.getownpropertydescriptors@^2.1.0:
define-properties "^1.1.3"
es-abstract "^1.17.0-next.1"
-object.omit@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-3.0.0.tgz#0e3edc2fce2ba54df5577ff529f6d97bd8a522af"
- integrity sha512-EO+BCv6LJfu+gBIF3ggLicFebFLN5zqzz/WWJlMFfkMyGth+oBkhxzDl0wx2W4GkLzuQs/FsSkXZb2IMWQqmBQ==
- dependencies:
- is-extendable "^1.0.0"
-
object.pick@^1.1.1, object.pick@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
@@ -11662,18 +11655,6 @@ reanimated-bottom-sheet@^1.0.0-alpha.18:
resolved "https://registry.yarnpkg.com/reanimated-bottom-sheet/-/reanimated-bottom-sheet-1.0.0-alpha.22.tgz#01a200946f1a461f01f1e773e5b4961c2df2e53b"
integrity sha512-NxecCn+2iA4YzkFuRK5/b86GHHS2OhZ9VRgiM4q18AC20YE/psRilqxzXCKBEvkOjP5AaAvY0yfE7EkEFBjTvw==
-recompact@^3.4.0:
- version "3.4.0"
- resolved "https://registry.yarnpkg.com/recompact/-/recompact-3.4.0.tgz#6f3d540cef833cbfc6073b86e7f1137ef6dae8f1"
- integrity sha512-ZPnF7uTotU6xIaxDl4GlOyOZX1FgMSQOKZX/wAd9Fgv6LdBxH6kiuGa4RQXcqoA7wZ7psjWPYBwzlwMOFhWIKQ==
- dependencies:
- fbjs "^0.8.17"
- hoist-non-react-statics "^3.0.1"
- object.omit "^3.0.0"
- object.pick "^1.3.0"
- symbol-observable "^1.1.0"
- warning "^4.0.2"
-
recursive-fs@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/recursive-fs/-/recursive-fs-2.1.0.tgz#1e20cf7836b292ed81208c4817550a58ad0e15ff"
@@ -13240,7 +13221,7 @@ symbol-observable@1.0.1:
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4"
integrity sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=
-symbol-observable@^1.1.0, symbol-observable@^1.2.0:
+symbol-observable@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804"
integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==
@@ -13998,13 +13979,6 @@ walker@^1.0.7, walker@~1.0.5:
dependencies:
makeerror "1.0.x"
-warning@^4.0.2:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3"
- integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==
- dependencies:
- loose-envify "^1.0.0"
-
wcwidth@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8"