Page MenuHomePhabricator

D12962.id43107.diff
No OneTemporary

D12962.id43107.diff

diff --git a/lib/actions/aux-user-actions.js b/lib/actions/aux-user-actions.js
--- a/lib/actions/aux-user-actions.js
+++ b/lib/actions/aux-user-actions.js
@@ -8,9 +8,12 @@
const setPeerDeviceListsActionType = 'SET_PEER_DEVICE_LISTS';
+const removePeerUsersActionType = 'REMOVE_PEER_USERS';
+
export {
setAuxUserFIDsActionType,
addAuxUserFIDsActionType,
clearAuxUserFIDsActionType,
setPeerDeviceListsActionType,
+ removePeerUsersActionType,
};
diff --git a/lib/reducers/aux-user-reducer.js b/lib/reducers/aux-user-reducer.js
--- a/lib/reducers/aux-user-reducer.js
+++ b/lib/reducers/aux-user-reducer.js
@@ -4,6 +4,7 @@
setAuxUserFIDsActionType,
addAuxUserFIDsActionType,
clearAuxUserFIDsActionType,
+ removePeerUsersActionType,
setPeerDeviceListsActionType,
} from '../actions/aux-user-actions.js';
import { setClientDBStoreActionType } from '../actions/client-db-store-actions.js';
@@ -182,6 +183,18 @@
});
}
+ return {
+ auxUserStore: processStoreOps(state, removeUsersOps),
+ auxUserStoreOperations: removeUsersOps,
+ };
+ } else if (action.type === removePeerUsersActionType) {
+ const removeUsersOps: RemoveAuxUserInfosOperation[] = [
+ {
+ type: 'remove_aux_user_infos',
+ payload: { ids: action.payload.userIDs },
+ },
+ ];
+
return {
auxUserStore: processStoreOps(state, removeUsersOps),
auxUserStoreOperations: removeUsersOps,
diff --git a/lib/reducers/user-reducer.js b/lib/reducers/user-reducer.js
--- a/lib/reducers/user-reducer.js
+++ b/lib/reducers/user-reducer.js
@@ -3,6 +3,7 @@
import _isEqual from 'lodash/fp/isEqual.js';
import _keyBy from 'lodash/fp/keyBy.js';
+import { removePeerUsersActionType } from '../actions/aux-user-actions.js';
import { setClientDBStoreActionType } from '../actions/client-db-store-actions.js';
import { legacySiweAuthActionTypes } from '../actions/siwe-actions.js';
import {
@@ -533,6 +534,24 @@
newInconsistencies,
userStoreOps,
];
+ } else if (
+ action.type === removePeerUsersActionType &&
+ !relyingOnAuthoritativeKeyserver
+ ) {
+ const userStoreOps: UserStoreOperation[] = [
+ {
+ type: 'remove_users',
+ payload: { ids: action.payload.userIDs },
+ },
+ ];
+
+ return [
+ {
+ userInfos: processUserStoreOps(state.userInfos, userStoreOps),
+ },
+ [],
+ userStoreOps,
+ ];
} else if (action.type === updateUserAvatarActionTypes.success) {
const newUserInfos = _keyBy(userInfo => userInfo.id)(
action.payload.updates.userInfos,
diff --git a/lib/tunnelbroker/use-peer-to-peer-message-handler.js b/lib/tunnelbroker/use-peer-to-peer-message-handler.js
--- a/lib/tunnelbroker/use-peer-to-peer-message-handler.js
+++ b/lib/tunnelbroker/use-peer-to-peer-message-handler.js
@@ -4,6 +4,7 @@
import _isEqual from 'lodash/fp/isEqual.js';
import * as React from 'react';
+import { removePeerUsersActionType } from '../actions/aux-user-actions.js';
import { invalidateTunnelbrokerDeviceToken } from '../actions/tunnelbroker-actions.js';
import { logOutActionTypes, useLogOut } from '../actions/user-actions.js';
import {
@@ -62,6 +63,7 @@
);
const allPeerDevices = useSelector(getAllPeerDevices);
+ const dispatch = useDispatch();
const dispatchActionPromise = useDispatchActionPromise();
const primaryDeviceRequestedLogOut = useLogOut(primaryRequestLogoutOptions);
@@ -119,7 +121,10 @@
primaryDeviceRequestedLogOut(),
);
} else {
- // TODO: update peer list
+ dispatch({
+ type: removePeerUsersActionType,
+ payload: { userIDs: [senderInfo.userID] },
+ });
}
} else {
console.warn(
@@ -131,6 +136,7 @@
[
allPeerDevices,
broadcastDeviceListUpdates,
+ dispatch,
dispatchActionPromise,
getAuthMetadata,
identityClient,
diff --git a/lib/types/aux-user-types.js b/lib/types/aux-user-types.js
--- a/lib/types/aux-user-types.js
+++ b/lib/types/aux-user-types.js
@@ -27,6 +27,8 @@
+farcasterUsers: $ReadOnlyArray<FarcasterUser>,
};
+export type RemovePeerUsersPayload = { +userIDs: $ReadOnlyArray<string> };
+
export type SetPeerDeviceListsPayload = {
+deviceLists: UsersRawDeviceLists,
+usersPlatformDetails: {
diff --git a/lib/types/redux-types.js b/lib/types/redux-types.js
--- a/lib/types/redux-types.js
+++ b/lib/types/redux-types.js
@@ -22,6 +22,7 @@
AuxUserStore,
SetAuxUserFIDsPayload,
AddAuxUserFIDsPayload,
+ RemovePeerUsersPayload,
SetPeerDeviceListsPayload,
} from './aux-user-types.js';
import type {
@@ -1439,6 +1440,10 @@
+type: 'CLEAR_AUX_USER_FIDS',
+payload?: void,
}
+ | {
+ +type: 'REMOVE_PEER_USERS',
+ +payload: RemovePeerUsersPayload,
+ }
| {
+type: 'SET_PEER_DEVICE_LISTS',
+payload: SetPeerDeviceListsPayload,

File Metadata

Mime Type
text/plain
Expires
Fri, Sep 20, 11:28 PM (21 h, 52 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2154357
Default Alt Text
D12962.id43107.diff (4 KB)

Event Timeline