Page MenuHomePhorge

D12219.1765278013.diff
No OneTemporary

Size
2 KB
Referenced Files
None
Subscribers
None

D12219.1765278013.diff

diff --git a/lib/handlers/user-infos-handler.react.js b/lib/handlers/user-infos-handler.react.js
--- a/lib/handlers/user-infos-handler.react.js
+++ b/lib/handlers/user-infos-handler.react.js
@@ -2,6 +2,11 @@
import * as React from 'react';
+import {
+ useFindUserIdentities,
+ findUserIdentitiesActionTypes,
+} from '../actions/user-actions.js';
+import { useDispatchActionPromise } from '../utils/redux-promise-utils.js';
import { useSelector } from '../utils/redux-utils.js';
import {
relyingOnAuthoritativeKeyserver,
@@ -18,17 +23,46 @@
return Object.fromEntries(entriesWithoutUsernames);
}, [userInfos]);
+ const dispatchActionPromise = useDispatchActionPromise();
+ const findUserIdentities = useFindUserIdentities();
+
+ const requestedIDsRef = React.useRef(new Set<string>());
+
React.useEffect(() => {
- if (!usingCommServicesAccessToken) {
+ const newUserIDs = Object.keys(userInfosWithMissingUsernames).filter(
+ id => !requestedIDsRef.current.has(id),
+ );
+ if (!usingCommServicesAccessToken || newUserIDs.length === 0) {
return;
}
- // 1. TODO: fetch usernames from identity
- // 2. Fetch avatars and settings from auth keyserver
- if (relyingOnAuthoritativeKeyserver) {
- // TODO
- }
- }, [userInfosWithMissingUsernames]);
+ const promise = (async () => {
+ newUserIDs.forEach(id => requestedIDsRef.current.add(id));
+ // 1. Fetch usernames from identity
+ const identities = await findUserIdentities(newUserIDs);
+
+ // 2. Fetch avatars and settings from auth keyserver
+ if (relyingOnAuthoritativeKeyserver) {
+ // TODO
+ }
+ newUserIDs.forEach(id => requestedIDsRef.current.delete(id));
+
+ const newUserInfos = [];
+ for (const id in identities) {
+ newUserInfos.push({
+ id,
+ username: identities[id].username,
+ });
+ }
+ return { userInfos: newUserInfos };
+ })();
+ void dispatchActionPromise(findUserIdentitiesActionTypes, promise);
+ }, [
+ dispatchActionPromise,
+ findUserIdentities,
+ userInfos,
+ userInfosWithMissingUsernames,
+ ]);
}
export { UserInfosHandler };

File Metadata

Mime Type
text/plain
Expires
Tue, Dec 9, 11:00 AM (7 h, 8 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5854062
Default Alt Text
D12219.1765278013.diff (2 KB)

Event Timeline