Page MenuHomePhorge

D10531.1767165155.diff
No OneTemporary

Size
13 KB
Referenced Files
None
Subscribers
None

D10531.1767165155.diff

diff --git a/lib/selectors/account-selectors.js b/lib/selectors/account-selectors.js
--- a/lib/selectors/account-selectors.js
+++ b/lib/selectors/account-selectors.js
@@ -8,45 +8,50 @@
sessionIDSelector,
deviceTokensSelector,
} from './keyserver-selectors.js';
-import { currentCalendarQuery } from './nav-selectors.js';
import type {
LogInExtraInfo,
DeviceTokenUpdateRequest,
} from '../types/account-types.js';
-import type { CalendarQuery } from '../types/entry-types.js';
+import type { CalendarFilter } from '../types/filter-types.js';
import type { KeyserverInfos } from '../types/keyserver-types.js';
-import type { AppState } from '../types/redux-types.js';
+import type { BaseNavInfo } from '../types/nav-types.js';
+import type { AppState, BaseAppState } from '../types/redux-types.js';
import type {
PreRequestUserState,
PreRequestUserKeyserverSessionInfo,
} from '../types/session-types.js';
import type { CurrentUserInfo } from '../types/user-types.js';
-const logInExtraInfoSelector: (
- state: AppState,
-) => (calendarActive: boolean) => LogInExtraInfo = createSelector(
- deviceTokensSelector,
- currentCalendarQuery,
- (
- deviceTokens: { +[keyserverID: string]: ?string },
- calendarQuery: (calendarActive: boolean) => CalendarQuery,
- ) => {
- const deviceTokenUpdateRequest: { [string]: DeviceTokenUpdateRequest } = {};
+const logInExtraInfoSelector: (state: AppState) => LogInExtraInfo =
+ createSelector(
+ (state: BaseAppState<>) => state.navInfo,
+ (state: BaseAppState<>) => state.calendarFilters,
+ deviceTokensSelector,
+ (
+ navInfo: BaseNavInfo,
+ calendarFilters: $ReadOnlyArray<CalendarFilter>,
+ deviceTokens: { +[keyserverID: string]: ?string },
+ ) => {
+ const deviceTokenUpdateRequest: { [string]: DeviceTokenUpdateRequest } =
+ {};
- for (const keyserverID in deviceTokens) {
- if (deviceTokens[keyserverID]) {
- deviceTokenUpdateRequest[keyserverID] = {
- deviceToken: deviceTokens[keyserverID],
- };
+ for (const keyserverID in deviceTokens) {
+ if (deviceTokens[keyserverID]) {
+ deviceTokenUpdateRequest[keyserverID] = {
+ deviceToken: deviceTokens[keyserverID],
+ };
+ }
}
- }
- // Return a function since we depend on the time of evaluation
- return (calendarActive: boolean): LogInExtraInfo => ({
- calendarQuery: calendarQuery(calendarActive),
- deviceTokenUpdateRequest,
- });
- },
-);
+ return {
+ calendarQuery: {
+ startDate: navInfo.startDate,
+ endDate: navInfo.endDate,
+ filters: calendarFilters,
+ },
+ deviceTokenUpdateRequest,
+ };
+ },
+ );
const basePreRequestUserStateForSingleKeyserverSelector: (
keyserverID: string,
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
@@ -40,7 +40,6 @@
import { PanelButton, Panel } from './panel-components.react.js';
import PasswordInput from './password-input.react.js';
import SWMansionIcon from '../components/swmansion-icon.react.js';
-import { NavContext } from '../navigation/navigation-context.js';
import { useSelector } from '../redux/redux-utils.js';
import { nativeLogInExtraInfoSelector } from '../selectors/account-selectors.js';
import type { KeyPressEvent } from '../types/react-native.js';
@@ -373,13 +372,7 @@
olmSessionInitializationDataLoadingStatus,
);
- const navContext = React.useContext(NavContext);
- const logInExtraInfo = useSelector(state =>
- nativeLogInExtraInfoSelector({
- redux: state,
- navContext,
- }),
- );
+ const logInExtraInfo = useSelector(nativeLogInExtraInfoSelector);
const dispatchActionPromise = useDispatchActionPromise();
const callLogIn = useLogIn();
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
@@ -43,7 +43,6 @@
import { setNativeCredentials } from './native-credentials.js';
import { PanelButton, Panel } from './panel-components.react.js';
import SWMansionIcon from '../components/swmansion-icon.react.js';
-import { NavContext } from '../navigation/navigation-context.js';
import { useSelector } from '../redux/redux-utils.js';
import { nativeLogInExtraInfoSelector } from '../selectors/account-selectors.js';
import type { KeyPressEvent } from '../types/react-native.js';
@@ -477,13 +476,7 @@
olmSessionInitializationDataLoadingStatus,
);
- const navContext = React.useContext(NavContext);
- const logInExtraInfo = useSelector(state =>
- nativeLogInExtraInfoSelector({
- redux: state,
- navContext,
- }),
- );
+ const logInExtraInfo = useSelector(nativeLogInExtraInfoSelector);
const dispatch = useDispatch();
const dispatchActionPromise = useDispatchActionPromise();
diff --git a/native/account/registration/registration-server-call.js b/native/account/registration/registration-server-call.js
--- a/native/account/registration/registration-server-call.js
+++ b/native/account/registration/registration-server-call.js
@@ -21,7 +21,6 @@
useNativeSetUserAvatar,
useUploadSelectedMedia,
} from '../../avatars/avatar-hooks.js';
-import { NavContext } from '../../navigation/navigation-context.js';
import { useSelector } from '../../redux/redux-utils.js';
import { nativeLogInExtraInfoSelector } from '../../selectors/account-selectors.js';
import { AppOutOfDateAlertDetails } from '../../utils/alert-messages.js';
@@ -56,13 +55,7 @@
// STEP 1: ACCOUNT REGISTRATION
- const navContext = React.useContext(NavContext);
- const logInExtraInfo = useSelector(state =>
- nativeLogInExtraInfoSelector({
- redux: state,
- navContext,
- }),
- );
+ const logInExtraInfo = useSelector(nativeLogInExtraInfoSelector);
const dispatchActionPromise = useDispatchActionPromise();
const callRegister = useServerCall(register);
diff --git a/native/account/resolve-invalidated-cookie.js b/native/account/resolve-invalidated-cookie.js
--- a/native/account/resolve-invalidated-cookie.js
+++ b/native/account/resolve-invalidated-cookie.js
@@ -8,7 +8,6 @@
import type { CallKeyserverEndpoint } from 'lib/utils/keyserver-call.js';
import { fetchNativeKeychainCredentials } from './native-credentials.js';
-import { getGlobalNavContext } from '../navigation/icky-global.js';
import { store } from '../redux/redux-setup.js';
import { nativeLogInExtraInfoSelector } from '../selectors/account-selectors.js';
@@ -26,10 +25,7 @@
if (!keychainCredentials) {
return;
}
- let extraInfo = await nativeLogInExtraInfoSelector({
- redux: store.getState(),
- navContext: getGlobalNavContext(),
- })();
+ let extraInfo = await nativeLogInExtraInfoSelector(store.getState())();
if (getInitialNotificationsEncryptedMessage) {
const initialNotificationsEncryptedMessage =
diff --git a/native/account/siwe-hooks.js b/native/account/siwe-hooks.js
--- a/native/account/siwe-hooks.js
+++ b/native/account/siwe-hooks.js
@@ -14,7 +14,6 @@
} from 'lib/utils/action-utils.js';
import type { CallServerEndpointOptions } from 'lib/utils/call-server-endpoint.js';
-import { NavContext } from '../navigation/navigation-context.js';
import { useSelector } from '../redux/redux-utils.js';
import { nativeLogInExtraInfoSelector } from '../selectors/account-selectors.js';
import { nativeNotificationsSessionCreator } from '../utils/crypto-utils.js';
@@ -49,13 +48,7 @@
[siweAuthCall],
);
- const navContext = React.useContext(NavContext);
- const logInExtraInfo = useSelector(state =>
- nativeLogInExtraInfoSelector({
- redux: state,
- navContext,
- }),
- );
+ const logInExtraInfo = useSelector(nativeLogInExtraInfoSelector);
const getInitialNotificationsEncryptedMessage =
useInitialNotificationsEncryptedMessage(nativeNotificationsSessionCreator);
diff --git a/native/selectors/account-selectors.js b/native/selectors/account-selectors.js
--- a/native/selectors/account-selectors.js
+++ b/native/selectors/account-selectors.js
@@ -11,20 +11,14 @@
import { values } from 'lib/utils/objects.js';
import { commCoreModule } from '../native-modules.js';
-import { calendarActiveSelector } from '../navigation/nav-selectors.js';
import type { AppState } from '../redux/state-types.js';
import type { ConnectivityInfo } from '../types/connectivity.js';
-import type { NavPlusRedux } from '../types/selector-types.js';
const nativeLogInExtraInfoSelector: (
- input: NavPlusRedux,
+ state: AppState,
) => () => Promise<LogInExtraInfo> = createSelector(
- (input: NavPlusRedux) => logInExtraInfoSelector(input.redux),
- (input: NavPlusRedux) => calendarActiveSelector(input.navContext),
- (
- logInExtraInfoFunc: (calendarActive: boolean) => LogInExtraInfo,
- calendarActive: boolean,
- ) => {
+ logInExtraInfoSelector,
+ (logInExtraInfo: LogInExtraInfo) => {
const loginExtraFuncWithIdentityKey = async () => {
await commCoreModule.initializeCryptoAccount();
const { blobPayload, signature } =
@@ -34,7 +28,7 @@
signature,
};
return {
- ...logInExtraInfoFunc(calendarActive),
+ ...logInExtraInfo,
signedIdentityKeysBlob,
};
};
diff --git a/web/account/siwe-login-form.react.js b/web/account/siwe-login-form.react.js
--- a/web/account/siwe-login-form.react.js
+++ b/web/account/siwe-login-form.react.js
@@ -16,6 +16,7 @@
import ConnectedWalletInfo from 'lib/components/connected-wallet-info.react.js';
import SWMansionIcon from 'lib/components/SWMansionIcon.react.js';
import stores from 'lib/facts/stores.js';
+import { logInExtraInfoSelector } from 'lib/selectors/account-selectors.js';
import { createLoadingStatusSelector } from 'lib/selectors/loading-selectors.js';
import type {
LogInStartingPayload,
@@ -41,7 +42,6 @@
import OrBreak from '../components/or-break.react.js';
import LoadingIndicator from '../loading-indicator.react.js';
import { useSelector } from '../redux/redux-utils.js';
-import { webLogInExtraInfoSelector } from '../selectors/account-selectors.js';
type SIWELogInError = 'account_does_not_exist';
@@ -64,7 +64,7 @@
);
const siweAuthLoadingStatus = useSelector(siweAuthLoadingStatusSelector);
const siweAuthCall = useServerCall(siweAuth);
- const logInExtraInfo = useSelector(webLogInExtraInfoSelector);
+ const logInExtraInfo = useSelector(logInExtraInfoSelector);
const [siweNonce, setSIWENonce] = React.useState<?string>(null);
@@ -120,12 +120,11 @@
const attemptSIWEAuth = React.useCallback(
(message: string, signature: string) => {
- const extraInfo = logInExtraInfo();
return dispatchActionPromise(
siweAuthActionTypes,
- callSIWEAuthEndpoint(message, signature, extraInfo),
+ callSIWEAuthEndpoint(message, signature, logInExtraInfo),
undefined,
- ({ calendarQuery: extraInfo.calendarQuery }: LogInStartingPayload),
+ ({ calendarQuery: logInExtraInfo.calendarQuery }: LogInStartingPayload),
);
},
[callSIWEAuthEndpoint, dispatchActionPromise, logInExtraInfo],
diff --git a/web/account/traditional-login-form.react.js b/web/account/traditional-login-form.react.js
--- a/web/account/traditional-login-form.react.js
+++ b/web/account/traditional-login-form.react.js
@@ -5,6 +5,7 @@
import { useLogIn, logInActionTypes } from 'lib/actions/user-actions.js';
import { useModalContext } from 'lib/components/modal-provider.react.js';
+import { logInExtraInfoSelector } from 'lib/selectors/account-selectors.js';
import { createLoadingStatusSelector } from 'lib/selectors/loading-selectors.js';
import {
oldValidUsernameRegex,
@@ -25,12 +26,11 @@
import LoadingIndicator from '../loading-indicator.react.js';
import Input from '../modals/input.react.js';
import { useSelector } from '../redux/redux-utils.js';
-import { webLogInExtraInfoSelector } from '../selectors/account-selectors.js';
const loadingStatusSelector = createLoadingStatusSelector(logInActionTypes);
function TraditionalLoginForm(): React.Node {
const inputDisabled = useSelector(loadingStatusSelector) === 'loading';
- const loginExtraInfo = useSelector(webLogInExtraInfoSelector);
+ const loginExtraInfo = useSelector(logInExtraInfoSelector);
const callLogIn = useLogIn();
const dispatchActionPromise = useDispatchActionPromise();
const modalContext = useModalContext();
@@ -118,13 +118,11 @@
usernameInputRef.current?.focus();
return;
}
-
- const extraInfo = loginExtraInfo();
void dispatchActionPromise(
logInActionTypes,
- logInAction(extraInfo),
+ logInAction(loginExtraInfo),
undefined,
- ({ calendarQuery: extraInfo.calendarQuery }: LogInStartingPayload),
+ ({ calendarQuery: loginExtraInfo.calendarQuery }: LogInStartingPayload),
);
},
[dispatchActionPromise, logInAction, loginExtraInfo, username, password],
diff --git a/web/selectors/account-selectors.js b/web/selectors/account-selectors.js
deleted file mode 100644
--- a/web/selectors/account-selectors.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// @flow
-
-import { createSelector } from 'reselect';
-
-import { logInExtraInfoSelector } from 'lib/selectors/account-selectors.js';
-import type { LogInExtraInfo } from 'lib/types/account-types.js';
-
-import type { AppState } from '../redux/redux-setup.js';
-
-const webLogInExtraInfoSelector: (state: AppState) => () => LogInExtraInfo =
- createSelector(
- logInExtraInfoSelector,
- (state: AppState) => state.navInfo.tab === 'calendar',
- (
- logInExtraInfoFunc: (calendarActive: boolean) => LogInExtraInfo,
- calendarActive: boolean,
- ) =>
- () =>
- logInExtraInfoFunc(calendarActive),
- );
-
-export { webLogInExtraInfoSelector };

File Metadata

Mime Type
text/plain
Expires
Wed, Dec 31, 7:12 AM (10 h, 12 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5872573
Default Alt Text
D10531.1767165155.diff (13 KB)

Event Timeline