diff --git a/native/account/log-in-panel.react.js b/native/account/log-in-panel.react.js --- a/native/account/log-in-panel.react.js +++ b/native/account/log-in-panel.react.js @@ -5,8 +5,15 @@ import { View, StyleSheet, Keyboard, Platform } from 'react-native'; import Animated from 'react-native-reanimated'; -import { logInActionTypes, logIn } from 'lib/actions/user-actions.js'; -import { createLoadingStatusSelector } from 'lib/selectors/loading-selectors.js'; +import { + logInActionTypes, + logIn, + getOlmSessionInitializationDataActionTypes, +} from 'lib/actions/user-actions.js'; +import { + createLoadingStatusSelector, + combineLoadingStatuses, +} from 'lib/selectors/loading-selectors.js'; import { validEmailRegex, oldValidUsernameRegex, @@ -354,11 +361,21 @@ }, }); -const loadingStatusSelector = createLoadingStatusSelector(logInActionTypes); +const logInLoadingStatusSelector = + createLoadingStatusSelector(logInActionTypes); +const olmSessionInitializationDataLoadingStatusSelector = + createLoadingStatusSelector(getOlmSessionInitializationDataActionTypes); const ConnectedLogInPanel: React.ComponentType = React.memo(function ConnectedLogInPanel(props: BaseProps) { - const loadingStatus = useSelector(loadingStatusSelector); + const logInLoadingStatus = useSelector(logInLoadingStatusSelector); + const olmSessionInitializationDataLoadingStatus = useSelector( + olmSessionInitializationDataLoadingStatusSelector, + ); + const loadingStatus = combineLoadingStatuses( + logInLoadingStatus, + olmSessionInitializationDataLoadingStatus, + ); const navContext = React.useContext(NavContext); const logInExtraInfo = useSelector(state => diff --git a/native/account/register-panel.react.js b/native/account/register-panel.react.js --- a/native/account/register-panel.react.js +++ b/native/account/register-panel.react.js @@ -14,8 +14,15 @@ import { useDispatch } from 'react-redux'; import { setDataLoadedActionType } from 'lib/actions/client-db-store-actions.js'; -import { registerActionTypes, register } from 'lib/actions/user-actions.js'; -import { createLoadingStatusSelector } from 'lib/selectors/loading-selectors.js'; +import { + registerActionTypes, + register, + getOlmSessionInitializationDataActionTypes, +} from 'lib/actions/user-actions.js'; +import { + createLoadingStatusSelector, + combineLoadingStatuses, +} from 'lib/selectors/loading-selectors.js'; import { validUsernameRegex } from 'lib/shared/account-utils.js'; import type { RegisterInfo, @@ -458,11 +465,21 @@ }, }); -const loadingStatusSelector = createLoadingStatusSelector(registerActionTypes); +const registerLoadingStatusSelector = + createLoadingStatusSelector(registerActionTypes); +const olmSessionInitializationDataLoadingStatusSelector = + createLoadingStatusSelector(getOlmSessionInitializationDataActionTypes); const ConnectedRegisterPanel: React.ComponentType = React.memo(function ConnectedRegisterPanel(props: BaseProps) { - const loadingStatus = useSelector(loadingStatusSelector); + const registerLoadingStatus = useSelector(registerLoadingStatusSelector); + const olmSessionInitializationDataLoadingStatus = useSelector( + olmSessionInitializationDataLoadingStatusSelector, + ); + const loadingStatus = combineLoadingStatuses( + registerLoadingStatus, + olmSessionInitializationDataLoadingStatus, + ); const navContext = React.useContext(NavContext); const logInExtraInfo = useSelector(state =>