Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F32539151
D10531.1767165155.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
13 KB
Referenced Files
None
Subscribers
None
D10531.1767165155.diff
View Options
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
Details
Attached
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)
Attached To
Mode
D10531: [lib][web][native] Return current calendar query in logInExtraInfo
Attached
Detach File
Event Timeline
Log In to Comment