diff --git a/VAMobile/package.json b/VAMobile/package.json index d827cf1e147..c4ca646e46b 100644 --- a/VAMobile/package.json +++ b/VAMobile/package.json @@ -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", @@ -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", @@ -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", diff --git a/VAMobile/src/components/SignoutButton.tsx b/VAMobile/src/components/SignoutButton.tsx index 8de93f5a361..11d431bf610 100644 --- a/VAMobile/src/components/SignoutButton.tsx +++ b/VAMobile/src/components/SignoutButton.tsx @@ -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()) diff --git a/VAMobile/src/screens/BiometricsPreferenceScreen/BiometricsPreferenceScreen.tsx b/VAMobile/src/screens/BiometricsPreferenceScreen/BiometricsPreferenceScreen.tsx index d7cdf26bbf1..918ead2732d 100644 --- a/VAMobile/src/screens/BiometricsPreferenceScreen/BiometricsPreferenceScreen.tsx +++ b/VAMobile/src/screens/BiometricsPreferenceScreen/BiometricsPreferenceScreen.tsx @@ -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' @@ -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 const BiometricsPreferenceScreen: FC = () => { const theme = useTheme() - const dispatch = useDispatch() + const dispatch = useAppDispatch() const { t } = useTranslation(NAMESPACE.SETTINGS) const { supportedBiometric } = useSelector((state) => state.auth) diff --git a/VAMobile/src/screens/ClaimsScreen/ClaimDetailsScreen/ClaimStatus/ClaimFileUpload/SelectFile/UploadFile/UploadFile.tsx b/VAMobile/src/screens/ClaimsScreen/ClaimDetailsScreen/ClaimStatus/ClaimFileUpload/SelectFile/UploadFile/UploadFile.tsx index dcc38c728b5..dddd103560a 100644 --- a/VAMobile/src/screens/ClaimsScreen/ClaimDetailsScreen/ClaimStatus/ClaimFileUpload/SelectFile/UploadFile/UploadFile.tsx +++ b/VAMobile/src/screens/ClaimsScreen/ClaimDetailsScreen/ClaimStatus/ClaimFileUpload/SelectFile/UploadFile/UploadFile.tsx @@ -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' @@ -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 @@ -26,7 +26,7 @@ const UploadFile: FC = ({ navigation, route }) => { const theme = useTheme() const { request: originalRequest, fileUploaded } = route.params const { claim, filesUploadedSuccess, fileUploadedFailure, loadingFileUpload } = useSelector((state) => state.claimsAndAppeals) - const dispatch = useDispatch() + const dispatch = useAppDispatch() const [filesList, setFilesList] = useState([fileUploaded]) const confirmAlert = useDestructiveAlert() const [request, setRequest] = useState(originalRequest) diff --git a/VAMobile/src/screens/ClaimsScreen/ClaimDetailsScreen/ClaimStatus/ClaimFileUpload/TakePhotos/UploadOrAddPhotos/UploadOrAddPhotos.tsx b/VAMobile/src/screens/ClaimsScreen/ClaimDetailsScreen/ClaimStatus/ClaimFileUpload/TakePhotos/UploadOrAddPhotos/UploadOrAddPhotos.tsx index 22fa042bb05..c3a999bcc07 100644 --- a/VAMobile/src/screens/ClaimsScreen/ClaimDetailsScreen/ClaimStatus/ClaimFileUpload/TakePhotos/UploadOrAddPhotos/UploadOrAddPhotos.tsx +++ b/VAMobile/src/screens/ClaimsScreen/ClaimDetailsScreen/ClaimStatus/ClaimFileUpload/TakePhotos/UploadOrAddPhotos/UploadOrAddPhotos.tsx @@ -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' @@ -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 @@ -45,7 +45,7 @@ const UploadOrAddPhotos: FC = ({ navigation, route }) => const { claim, filesUploadedSuccess, fileUploadedFailure, loadingFileUpload } = useSelector((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('') diff --git a/VAMobile/src/screens/HealthScreen/SecureMessaging/CancelConfirmations/ComposeCancelConfirmation.tsx b/VAMobile/src/screens/HealthScreen/SecureMessaging/CancelConfirmations/ComposeCancelConfirmation.tsx index f2f0e50db23..13aa50d9a50 100644 --- a/VAMobile/src/screens/HealthScreen/SecureMessaging/CancelConfirmations/ComposeCancelConfirmation.tsx +++ b/VAMobile/src/screens/HealthScreen/SecureMessaging/CancelConfirmations/ComposeCancelConfirmation.tsx @@ -1,4 +1,3 @@ -import { useDispatch } from 'react-redux' import { useTranslation } from 'react-i18next' import { FolderNameTypeConstants, FormHeaderType, FormHeaderTypeConstants } from 'constants/secureMessaging' @@ -6,7 +5,7 @@ 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 = { @@ -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() diff --git a/VAMobile/src/screens/HealthScreen/SecureMessaging/NoFolderMessages/NoFolderMessages.tsx b/VAMobile/src/screens/HealthScreen/SecureMessaging/NoFolderMessages/NoFolderMessages.tsx index eb21b863944..29388d8f886 100644 --- a/VAMobile/src/screens/HealthScreen/SecureMessaging/NoFolderMessages/NoFolderMessages.tsx +++ b/VAMobile/src/screens/HealthScreen/SecureMessaging/NoFolderMessages/NoFolderMessages.tsx @@ -1,4 +1,3 @@ -import { useDispatch } from 'react-redux' import { useTranslation } from 'react-i18next' import React, { FC } from 'react' @@ -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 = { @@ -17,7 +16,7 @@ export type NoFolderMessagesProps = { const NoFolderMessages: FC = ({ folderName }) => { const { t } = useTranslation(NAMESPACE.HEALTH) const theme = useTheme() - const dispatch = useDispatch() + const dispatch = useAppDispatch() const navigateTo = useRouteNavigation() const onGoToInbox = (): void => { diff --git a/VAMobile/src/utils/accessibility.tsx b/VAMobile/src/utils/accessibility.tsx index 8c1819dc17b..6565a46da28 100644 --- a/VAMobile/src/utils/accessibility.tsx +++ b/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' @@ -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>): void => { +export const updateFontScale = (newState: AppStateStatus, fontScale: number, dispatch: AppDispatch): void => { if (newState === 'active') { const fontScaleUpdated = PixelRatio.getFontScale() if (fontScale !== fontScaleUpdated) { @@ -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>, -): Promise => { +export const updateIsVoiceOverTalkBackRunning = async (newState: AppStateStatus, isVoiceOverTalkBackRunning: boolean | undefined, dispatch: AppDispatch): Promise => { if (newState === 'active') { const isRunning = await RNCheckVoiceOver.isVoiceOverRunning() if (isVoiceOverTalkBackRunning !== isRunning) { diff --git a/VAMobile/yarn.lock b/VAMobile/yarn.lock index 43b6b7dac4f..3f7cfd63115 100644 --- a/VAMobile/yarn.lock +++ b/VAMobile/yarn.lock @@ -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" @@ -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" @@ -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== @@ -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" @@ -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" @@ -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" @@ -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" @@ -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== @@ -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" @@ -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" @@ -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"