Page MenuHomePhabricator

D6444.diff
No OneTemporary

D6444.diff

diff --git a/lib/shared/user-utils.js b/lib/shared/user-utils.js
--- a/lib/shared/user-utils.js
+++ b/lib/shared/user-utils.js
@@ -7,7 +7,8 @@
RawThreadInfo,
ThreadInfo,
} from '../types/thread-types';
-import type { UserInfo, UserInfos } from '../types/user-types';
+import type { UserInfo } from '../types/user-types';
+import { useSelector } from '../utils/redux-utils';
import { memberHasAdminPowers } from './thread-utils';
function stringForUser(user: {
@@ -43,10 +44,10 @@
return false;
}
-function getKeyserverAdmin(
+function useKeyserverAdmin(
community: ThreadInfo | RawThreadInfo | ServerThreadInfo,
- userInfos: UserInfos,
): ?UserInfo {
+ const userInfos = useSelector(state => state.userStore.userInfos);
// This hack only works as long as there is only one admin
// Linear task to revert this:
// https://linear.app/comm/issue/ENG-1707/revert-fix-getting-the-keyserver-admin-info
@@ -54,4 +55,4 @@
return admin ? userInfos[admin.id] : undefined;
}
-export { stringForUser, stringForUserExplicit, isStaff, getKeyserverAdmin };
+export { stringForUser, stringForUserExplicit, isStaff, useKeyserverAdmin };
diff --git a/native/components/community-pill.react.js b/native/components/community-pill.react.js
--- a/native/components/community-pill.react.js
+++ b/native/components/community-pill.react.js
@@ -3,10 +3,9 @@
import * as React from 'react';
import { View, StyleSheet } from 'react-native';
-import { getKeyserverAdmin } from 'lib/shared/user-utils';
+import { useKeyserverAdmin } from 'lib/shared/user-utils';
import type { ThreadInfo } from 'lib/types/thread-types';
-import { useSelector } from '../redux/redux-utils';
import { useColors } from '../themes/colors';
import CommIcon from './comm-icon.react';
import Pill from './pill.react';
@@ -18,11 +17,8 @@
function CommunityPill(props: Props): React.Node {
const { community } = props;
- const userInfos = useSelector(state => state.userStore.userInfos);
- const keyserverOperatorUsername: ?string = React.useMemo(
- () => getKeyserverAdmin(community, userInfos)?.username,
- [community, userInfos],
- );
+ const keyserverAdmin = useKeyserverAdmin(community);
+ const keyserverOperatorUsername = keyserverAdmin?.username;
const colors = useColors();
const keyserverOperatorLabel: ?React.Node = React.useMemo(() => {
diff --git a/web/chat/chat-thread-ancestors.react.js b/web/chat/chat-thread-ancestors.react.js
--- a/web/chat/chat-thread-ancestors.react.js
+++ b/web/chat/chat-thread-ancestors.react.js
@@ -5,11 +5,10 @@
import { useAncestorThreads } from 'lib/shared/ancestor-threads';
import { colorIsDark } from 'lib/shared/thread-utils';
-import { getKeyserverAdmin } from 'lib/shared/user-utils';
+import { useKeyserverAdmin } from 'lib/shared/user-utils';
import type { ThreadInfo } from 'lib/types/thread-types';
import CommIcon from '../CommIcon.react';
-import { useSelector } from '../redux/redux-utils';
import SWMansionIcon from '../SWMansionIcon.react';
import css from './chat-thread-ancestors.css';
@@ -38,12 +37,9 @@
const ancestorThreads = useAncestorThreads(threadInfo);
- const userInfos = useSelector(state => state.userStore.userInfos);
const community = ancestorThreads[0] ?? threadInfo;
- const keyserverOwnerUsername: ?string = React.useMemo(
- () => getKeyserverAdmin(community, userInfos)?.username,
- [community, userInfos],
- );
+ const keyserverAdmin = useKeyserverAdmin(community);
+ const keyserverOwnerUsername = keyserverAdmin?.username;
const keyserverInfo = React.useMemo(
() => (

File Metadata

Mime Type
text/plain
Expires
Sun, Sep 29, 5:20 PM (22 h, 2 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2201836
Default Alt Text
D6444.diff (3 KB)

Event Timeline