Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/keli.3375 react redux update #3515

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
6 changes: 3 additions & 3 deletions VAMobile/package.json
Expand Up @@ -48,7 +48,7 @@
"@react-navigation/bottom-tabs": "^6.3.1",
"@react-navigation/native": "^6.0.10",
"@react-navigation/stack": "^6.2.1",
"@reduxjs/toolkit": "^1.6.2",
"@reduxjs/toolkit": "^1.8.3",
"eslint-plugin-tsdoc": "^0.2.16",
"i18next": "^21.6.10",
"jsc-android": "^250230.2.1",
Expand Down Expand Up @@ -79,7 +79,7 @@
"react-native-webp-format": "^1.1.2",
"react-native-webview": "^11.17.1",
"react-navigation": "^4.4.4",
"react-redux": "^7.2.2",
"react-redux": "^8.0.2",
"redux-logger": "^3.0.6",
"rn-fetch-blob": "^0.12.0",
"styled-components": "^5.2.1",
Expand All @@ -101,8 +101,8 @@
"@types/mocha": "^9.0.0",
"@types/node": "^17.0.12",
"@types/querystringify": "^2.0.0",
"@types/react-dom": "^18.0.6",
"@types/react-native": "^0.66.15",
"@types/react-redux": "^7.1.16",
"@types/react-test-renderer": "^17.0.1",
"@types/redux-logger": "^3.0.8",
"@types/redux-mock-store": "^1.0.2",
Expand Down
5 changes: 2 additions & 3 deletions VAMobile/src/components/SignoutButton.tsx
Expand Up @@ -6,14 +6,13 @@ import { NAMESPACE } from 'constants/namespaces'
import { VAButton } from './index'
import { logout } from 'store/slices/authSlice'
import { testIdProps } from 'utils/accessibility'
import { useDestructiveAlert } from 'utils/hooks'
import { useDispatch } from 'react-redux'
import { useAppDispatch, useDestructiveAlert } from 'utils/hooks'

/**Common component for the sign out button */
const SignoutButton: FC = ({}) => {
const { t } = useTranslation(NAMESPACE.SETTINGS)
const { t: tc } = useTranslation(NAMESPACE.COMMON)
const dispatch = useDispatch()
const dispatch = useAppDispatch()
const signOutAlert = useDestructiveAlert()
const _logout = () => {
dispatch(logout())
Expand Down
@@ -1,4 +1,4 @@
import { useDispatch, useSelector } from 'react-redux'
import { useSelector } from 'react-redux'
import { useTranslation } from 'react-i18next'
import React, { FC } from 'react'

Expand All @@ -9,13 +9,13 @@ import { getSupportedBiometricA11yLabel, getSupportedBiometricText, getSupported
import { AuthState, setBiometricsPreference, setDisplayBiometricsPreferenceScreen } from 'store/slices'
import { RootState } from 'store'
import { testIdProps } from 'utils/accessibility'
import { useTheme } from 'utils/hooks'
import { useAppDispatch, useTheme } from 'utils/hooks'

export type SyncScreenProps = Record<string, unknown>

const BiometricsPreferenceScreen: FC<SyncScreenProps> = () => {
const theme = useTheme()
const dispatch = useDispatch()
const dispatch = useAppDispatch()
const { t } = useTranslation(NAMESPACE.SETTINGS)

const { supportedBiometric } = useSelector<RootState, AuthState>((state) => state.auth)
Expand Down
@@ -1,5 +1,5 @@
import { StackScreenProps } from '@react-navigation/stack/lib/typescript/src/types'
import { useDispatch, useSelector } from 'react-redux'
import { useSelector } from 'react-redux'
import { useTranslation } from 'react-i18next'
import React, { FC, ReactNode, useEffect, useState } from 'react'

Expand All @@ -15,7 +15,7 @@ import { RootState } from 'store'
import { SnackbarMessages } from 'components/SnackBar'
import { showSnackBar } from 'utils/common'
import { testIdProps } from 'utils/accessibility'
import { useBeforeNavBackListener, useDestructiveAlert, useTheme } from 'utils/hooks'
import { useAppDispatch, useBeforeNavBackListener, useDestructiveAlert, useTheme } from 'utils/hooks'
import FileList from 'components/FileList'

type UploadFileProps = StackScreenProps<ClaimsStackParamList, 'UploadFile'>
Expand All @@ -26,7 +26,7 @@ const UploadFile: FC<UploadFileProps> = ({ navigation, route }) => {
const theme = useTheme()
const { request: originalRequest, fileUploaded } = route.params
const { claim, filesUploadedSuccess, fileUploadedFailure, loadingFileUpload } = useSelector<RootState, ClaimsAndAppealsState>((state) => state.claimsAndAppeals)
const dispatch = useDispatch()
const dispatch = useAppDispatch()
const [filesList, setFilesList] = useState<DocumentPickerResponse[]>([fileUploaded])
const confirmAlert = useDestructiveAlert()
const [request, setRequest] = useState<ClaimEventData>(originalRequest)
Expand Down
@@ -1,7 +1,7 @@
import { Asset, ImagePickerResponse } from 'react-native-image-picker/src/types'
import { Dimensions } from 'react-native'
import { StackScreenProps } from '@react-navigation/stack/lib/typescript/src/types'
import { useDispatch, useSelector } from 'react-redux'
import { useSelector } from 'react-redux'
import { useTranslation } from 'react-i18next'
import React, { FC, ReactElement, ReactNode, useEffect, useState } from 'react'
import _ from 'underscore'
Expand Down Expand Up @@ -34,7 +34,7 @@ import { bytesToFinalSizeDisplay, bytesToFinalSizeDisplayA11y } from 'utils/comm
import { deletePhoto, onAddPhotos } from 'utils/claims'
import { showSnackBar } from 'utils/common'
import { testIdProps } from 'utils/accessibility'
import { useBeforeNavBackListener, useDestructiveAlert, useOrientation, useShowActionSheet, useTheme } from 'utils/hooks'
import { useAppDispatch, useBeforeNavBackListener, useDestructiveAlert, useOrientation, useShowActionSheet, useTheme } from 'utils/hooks'

type UploadOrAddPhotosProps = StackScreenProps<ClaimsStackParamList, 'UploadOrAddPhotos'>

Expand All @@ -45,7 +45,7 @@ const UploadOrAddPhotos: FC<UploadOrAddPhotosProps> = ({ navigation, route }) =>
const { claim, filesUploadedSuccess, fileUploadedFailure, loadingFileUpload } = useSelector<RootState, ClaimsAndAppealsState>((state) => state.claimsAndAppeals)
const showActionSheetWithOptions = useShowActionSheet()
const { request: originalRequest, firstImageResponse } = route.params
const dispatch = useDispatch()
const dispatch = useAppDispatch()
const isPortrait = useOrientation()
const [imagesList, setImagesList] = useState(firstImageResponse.assets)
const [errorMessage, setErrorMessage] = useState('')
Expand Down
@@ -1,12 +1,11 @@
import { useDispatch } from 'react-redux'
import { useTranslation } from 'react-i18next'

import { FolderNameTypeConstants, FormHeaderType, FormHeaderTypeConstants } from 'constants/secureMessaging'
import { NAMESPACE } from 'constants/namespaces'
import { SecureMessagingFormData, SecureMessagingSystemFolderIdConstants, SecureMessagingTabTypesConstants } from 'store/api/types'
import { SnackbarMessages } from 'components/SnackBar'
import { resetHasLoadedRecipients, resetSaveDraftComplete, resetSaveDraftFailed, resetSendMessageFailed, saveDraft, updateSecureMessagingTab } from 'store/slices'
import { useDestructiveAlert, useRouteNavigation } from 'utils/hooks'
import { useAppDispatch, useDestructiveAlert, useRouteNavigation } from 'utils/hooks'
import { useState } from 'react'

type ComposeCancelConfirmationProps = {
Expand All @@ -25,7 +24,7 @@ type ComposeCancelConfirmationProps = {
export function useComposeCancelConfirmation(): [isDiscarded: boolean, composeCancelConfirmation: (props: ComposeCancelConfirmationProps) => void] {
const { t } = useTranslation(NAMESPACE.HEALTH)
const { t: tc } = useTranslation(NAMESPACE.COMMON)
const dispatch = useDispatch()
const dispatch = useAppDispatch()
const navigateTo = useRouteNavigation()
const confirmationAlert = useDestructiveAlert()
const goToDrafts = useGoToDrafts()
Expand Down
@@ -1,4 +1,3 @@
import { useDispatch } from 'react-redux'
import { useTranslation } from 'react-i18next'
import React, { FC } from 'react'

Expand All @@ -7,7 +6,7 @@ import { NAMESPACE } from 'constants/namespaces'
import { SecureMessagingTabTypesConstants } from 'store/api/types'
import { ViewStyle } from 'react-native'
import { updateSecureMessagingTab } from 'store/slices'
import { useRouteNavigation, useTheme } from 'utils/hooks'
import { useAppDispatch, useRouteNavigation, useTheme } from 'utils/hooks'
import ComposeMessageFooter from '../ComposeMessageFooter/ComposeMessageFooter'

export type NoFolderMessagesProps = {
Expand All @@ -17,7 +16,7 @@ export type NoFolderMessagesProps = {
const NoFolderMessages: FC<NoFolderMessagesProps> = ({ folderName }) => {
const { t } = useTranslation(NAMESPACE.HEALTH)
const theme = useTheme()
const dispatch = useDispatch()
const dispatch = useAppDispatch()
const navigateTo = useRouteNavigation()

const onGoToInbox = (): void => {
Expand Down
12 changes: 3 additions & 9 deletions VAMobile/src/utils/accessibility.tsx
@@ -1,13 +1,11 @@
import { AccessibilityValue, AppStateStatus, NativeModules, PixelRatio } from 'react-native'

import { ThunkDispatch } from 'redux-thunk'
import _ from 'underscore'

import { Action } from 'redux'
import { TextLine } from 'components/types'
import { isIOS } from './platform'

import { RootState } from 'store'
import { AppDispatch } from 'store'
import { updateCurrentFontScale, updateCurrentIsVoiceOverTalkBackRunning } from 'store/slices/accessibilitySlice'
import getEnv from 'utils/env'

Expand Down Expand Up @@ -55,7 +53,7 @@ export const a11yValueProp = (a11yValue: AccessibilityValue): { accessibilityVal
* @param fontScale - current font scale value
* @param dispatch - used to call updateCurrentFontScale action
*/
export const updateFontScale = (newState: AppStateStatus, fontScale: number, dispatch: ThunkDispatch<RootState, undefined, Action<unknown>>): void => {
export const updateFontScale = (newState: AppStateStatus, fontScale: number, dispatch: AppDispatch): void => {
if (newState === 'active') {
const fontScaleUpdated = PixelRatio.getFontScale()
if (fontScale !== fontScaleUpdated) {
Expand All @@ -72,11 +70,7 @@ export const updateFontScale = (newState: AppStateStatus, fontScale: number, dis
* @param isVoiceOverTalkBackRunning - current value indicating if voice over or talk back is on
* @param dispatch - used to call updateCurrentIsVoiceOverTalkBackRunning action
*/
export const updateIsVoiceOverTalkBackRunning = async (
newState: AppStateStatus,
isVoiceOverTalkBackRunning: boolean | undefined,
dispatch: ThunkDispatch<RootState, undefined, Action<unknown>>,
): Promise<void> => {
export const updateIsVoiceOverTalkBackRunning = async (newState: AppStateStatus, isVoiceOverTalkBackRunning: boolean | undefined, dispatch: AppDispatch): Promise<void> => {
if (newState === 'active') {
const isRunning = await RNCheckVoiceOver.isVoiceOverRunning()
if (isVoiceOverTalkBackRunning !== isRunning) {
Expand Down
99 changes: 60 additions & 39 deletions VAMobile/yarn.lock
Expand Up @@ -1802,13 +1802,20 @@
dependencies:
regenerator-runtime "^0.13.4"

"@babel/runtime@^7.12.0", "@babel/runtime@^7.14.5", "@babel/runtime@^7.15.4", "@babel/runtime@^7.9.2":
"@babel/runtime@^7.12.0", "@babel/runtime@^7.14.5", "@babel/runtime@^7.9.2":
version "7.15.4"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.4.tgz#fd17d16bfdf878e6dd02d19753a39fa8a8d9c84a"
integrity sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==
dependencies:
regenerator-runtime "^0.13.4"

"@babel/runtime@^7.12.1":
version "7.18.9"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.9.tgz#b4fcfce55db3d2e5e080d2490f608a3b9f407f4a"
integrity sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==
dependencies:
regenerator-runtime "^0.13.4"

"@babel/runtime@^7.16.7", "@babel/runtime@^7.8.4":
version "7.18.3"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.3.tgz#c7b654b57f6f63cf7f8b418ac9ca04408c4579f4"
Expand Down Expand Up @@ -3307,15 +3314,15 @@
color "^3.1.3"
warn-once "^0.1.0"

"@reduxjs/toolkit@^1.6.2":
version "1.6.2"
resolved "https://registry.yarnpkg.com/@reduxjs/toolkit/-/toolkit-1.6.2.tgz#2f2b5365df77dd6697da28fdf44f33501ed9ba37"
integrity sha512-HbfI/hOVrAcMGAYsMWxw3UJyIoAS9JTdwddsjlr5w3S50tXhWb+EMyhIw+IAvCVCLETkzdjgH91RjDSYZekVBA==
"@reduxjs/toolkit@^1.8.3":
version "1.8.3"
resolved "https://registry.yarnpkg.com/@reduxjs/toolkit/-/toolkit-1.8.3.tgz#9c6a9c497bde43a67618d37a4175a00ae12efeb2"
integrity sha512-lU/LDIfORmjBbyDLaqFN2JB9YmAT1BElET9y0ZszwhSBa5Ef3t6o5CrHupw5J1iOXwd+o92QfQZ8OJpwXvsssg==
dependencies:
immer "^9.0.6"
redux "^4.1.0"
redux-thunk "^2.3.0"
reselect "^4.0.0"
immer "^9.0.7"
redux "^4.1.2"
redux-thunk "^2.4.1"
reselect "^4.1.5"

"@sideway/address@^4.1.0":
version "4.1.2"
Expand Down Expand Up @@ -3618,7 +3625,7 @@
resolved "https://registry.yarnpkg.com/@types/hammerjs/-/hammerjs-2.0.40.tgz#ded0240b6ea1ad7afc1e60374c49087aaea5dbd8"
integrity sha512-VbjwR1fhsn2h2KXAY4oy1fm7dCxaKy0D+deTb8Ilc3Eo3rc5+5eA4rfYmZaHgNJKxVyI0f6WIXzO2zLkVmQPHA==

"@types/hoist-non-react-statics@*", "@types/hoist-non-react-statics@^3.3.0", "@types/hoist-non-react-statics@^3.3.1":
"@types/hoist-non-react-statics@*", "@types/hoist-non-react-statics@^3.3.1":
version "3.3.1"
resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz#1124aafe5118cb591977aeb1ceaaed1070eb039f"
integrity sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==
Expand Down Expand Up @@ -3783,6 +3790,13 @@
resolved "https://registry.yarnpkg.com/@types/querystringify/-/querystringify-2.0.0.tgz#d1eab3214ee2b57c3bd7eba0ab94b231028522fb"
integrity sha512-9WgEGTevECrXJC2LSWPqiPYWq8BRmeaOyZn47js/3V6UF0PWtcVfvvR43YjeO8BzBsthTz98jMczujOwTw+WYg==

"@types/react-dom@^18.0.6":
version "18.0.6"
resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.6.tgz#36652900024842b74607a17786b6662dd1e103a1"
integrity sha512-/5OFZgfIPSwy+YuIBP/FgJnQnsxhZhjjrnxudMddeblOouIodEQ75X14Rr4wGSG/bknL+Omy9iWlLo1u/9GzAA==
dependencies:
"@types/react" "*"

"@types/react-native@^0.65":
version "0.65.20"
resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.65.20.tgz#14e7e2a70ef57393150d26df10c86497ce2949ea"
Expand All @@ -3797,16 +3811,6 @@
dependencies:
"@types/react" "*"

"@types/react-redux@^7.1.16", "@types/react-redux@^7.1.20":
version "7.1.20"
resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.20.tgz#42f0e61ababb621e12c66c96dda94c58423bd7df"
integrity sha512-q42es4c8iIeTgcnB+yJgRTTzftv3eYYvCZOh1Ckn2eX/3o5TdsQYKUWpLoLuGlcY/p+VAhV9IOEZJcWk/vfkXw==
dependencies:
"@types/hoist-non-react-statics" "^3.3.0"
"@types/react" "*"
hoist-non-react-statics "^3.3.0"
redux "^4.0.0"

"@types/react-test-renderer@^17.0.1":
version "17.0.1"
resolved "https://registry.yarnpkg.com/@types/react-test-renderer/-/react-test-renderer-17.0.1.tgz#3120f7d1c157fba9df0118dae20cb0297ee0e06b"
Expand Down Expand Up @@ -3940,6 +3944,11 @@
resolved "https://registry.yarnpkg.com/@types/underscore/-/underscore-1.11.4.tgz#62e393f8bc4bd8a06154d110c7d042a93751def3"
integrity sha512-uO4CD2ELOjw8tasUrAhvnn2W4A0ZECOvMjCivJr4gA9pGgjv+qxKWY9GLTMVEK8ej85BxQOocUyE7hImmSQYcg==

"@types/use-sync-external-store@^0.0.3":
version "0.0.3"
resolved "https://registry.yarnpkg.com/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz#b6725d5f4af24ace33b36fafd295136e75509f43"
integrity sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==

"@types/which@^1.3.2":
version "1.3.2"
resolved "https://registry.yarnpkg.com/@types/which/-/which-1.3.2.tgz#9c246fc0c93ded311c8512df2891fb41f6227fdf"
Expand Down Expand Up @@ -8935,10 +8944,10 @@ immediate@~3.0.5:
resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b"
integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=

immer@^9.0.6:
version "9.0.6"
resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.6.tgz#7a96bf2674d06c8143e327cbf73539388ddf1a73"
integrity sha512-G95ivKpy+EvVAnAab4fVa4YGYn24J1SpEktnJX7JJ45Bd7xqME/SCplFzYFmTbrkwZbQ4xJK1xMTUYBkN6pWsQ==
immer@^9.0.7:
version "9.0.15"
resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.15.tgz#0b9169e5b1d22137aba7d43f8a81a495dd1b62dc"
integrity sha512-2eB/sswms9AEUSkOm4SbV5Y7Vmt/bKRwByd52jfLkW4OLYeaTP3EEiJ9agqU0O/tq6Dk62Zfj+TJSqfm1rLVGQ==

import-fresh@^2.0.0:
version "2.0.0"
Expand Down Expand Up @@ -12533,7 +12542,7 @@ react-i18next@^11.15.3:
html-escaper "^2.0.2"
html-parse-stringify "^3.0.1"

"react-is@^16.12.0 || ^17.0.0", react-is@^17.0.1, react-is@^17.0.2:
"react-is@^16.12.0 || ^17.0.0", react-is@^17.0.1:
version "17.0.2"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0"
integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==
Expand Down Expand Up @@ -12732,17 +12741,17 @@ react-navigation@^4.4.4:
"@react-navigation/core" "^3.7.9"
"@react-navigation/native" "^3.8.4"

react-redux@^7.2.2:
version "7.2.6"
resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.2.6.tgz#49633a24fe552b5f9caf58feb8a138936ddfe9aa"
integrity sha512-10RPdsz0UUrRL1NZE0ejTkucnclYSgXp5q+tB5SWx2qeG2ZJQJyymgAhwKy73yiL/13btfB6fPr+rgbMAaZIAQ==
react-redux@^8.0.2:
version "8.0.2"
resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-8.0.2.tgz#bc2a304bb21e79c6808e3e47c50fe1caf62f7aad"
integrity sha512-nBwiscMw3NoP59NFCXFf02f8xdo+vSHT/uZ1ldDwF7XaTpzm+Phk97VT4urYBl5TYAPNVaFm12UHAEyzkpNzRA==
dependencies:
"@babel/runtime" "^7.15.4"
"@types/react-redux" "^7.1.20"
"@babel/runtime" "^7.12.1"
"@types/hoist-non-react-statics" "^3.3.1"
"@types/use-sync-external-store" "^0.0.3"
hoist-non-react-statics "^3.3.2"
loose-envify "^1.4.0"
prop-types "^15.7.2"
react-is "^17.0.2"
react-is "^18.0.0"
use-sync-external-store "^1.0.0"

react-refresh@^0.4.0:
version "0.4.3"
Expand Down Expand Up @@ -12903,18 +12912,25 @@ redux-mock-store@^1.5.4:
dependencies:
lodash.isplainobject "^4.0.6"

redux-thunk@^2.3.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.4.0.tgz#ac89e1d6b9bdb9ee49ce69a69071be41bbd82d67"
integrity sha512-/y6ZKQNU/0u8Bm7ROLq9Pt/7lU93cT0IucYMrubo89ENjxPa7i8pqLKu6V4X7/TvYovQ6x01unTeyeZ9lgXiTA==
redux-thunk@^2.4.1:
version "2.4.1"
resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.4.1.tgz#0dd8042cf47868f4b29699941de03c9301a75714"
integrity sha512-OOYGNY5Jy2TWvTL1KgAlVy6dcx3siPJ1wTq741EPyUKfn6W6nChdICjZwCd0p8AZBs5kWpZlbkXW2nE/zjUa+Q==

redux@^4.0.0, redux@^4.0.5, redux@^4.1.0:
redux@^4.0.0, redux@^4.0.5:
version "4.1.2"
resolved "https://registry.yarnpkg.com/redux/-/redux-4.1.2.tgz#140f35426d99bb4729af760afcf79eaaac407104"
integrity sha512-SH8PglcebESbd/shgf6mii6EIoRM0zrQyjcuQ+ojmfxjTtE0z9Y8pa62iA/OJ58qjP6j27uyW4kUF4jl/jd6sw==
dependencies:
"@babel/runtime" "^7.9.2"

redux@^4.1.2:
version "4.2.0"
resolved "https://registry.yarnpkg.com/redux/-/redux-4.2.0.tgz#46f10d6e29b6666df758780437651eeb2b969f13"
integrity sha512-oSBmcKKIuIR4ME29/AeNUnl5L+hvBq7OaJWzaptTQJAntaPvxIJqfnjbaEiCzzaIz+XmVILfqAM3Ob0aXLPfjA==
dependencies:
"@babel/runtime" "^7.9.2"

regenerate-unicode-properties@^10.0.1:
version "10.0.1"
resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56"
Expand Down Expand Up @@ -13085,6 +13101,11 @@ reselect@^4.0.0:
resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.1.1.tgz#7e2c110efbf3d70df3482604bcf2bc0ab571346a"
integrity sha512-Jjt8Us6hAWJpjucyladHvUGR+q1mHHgWtGDXlhvvKyNyIeQ3bjuWLDX0bsTLhbm/gd4iXEACBlODUHBlLWiNnA==

reselect@^4.1.5:
version "4.1.6"
resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.1.6.tgz#19ca2d3d0b35373a74dc1c98692cdaffb6602656"
integrity sha512-ZovIuXqto7elwnxyXbBtCPo9YFEr3uJqj2rRbcOOog1bmu2Ag85M4hixSwFWyaBMKXNgvPaJ9OSu9SkBPIeJHQ==

resolve-alpn@^1.0.0:
version "1.2.1"
resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9"
Expand Down