Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F3156428
D10676.id36054.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
42 KB
Referenced Files
None
Subscribers
None
D10676.id36054.diff
View Options
diff --git a/lib/shared/thread-utils.js b/lib/shared/thread-utils.js
--- a/lib/shared/thread-utils.js
+++ b/lib/shared/thread-utils.js
@@ -33,18 +33,18 @@
threadPermissionsFromBitmaskHex,
} from '../permissions/minimally-encoded-thread-permissions.js';
import {
- permissionLookup,
getAllThreadPermissions,
makePermissionsBlob,
+ permissionLookup,
} from '../permissions/thread-permissions.js';
import type {
- ChatThreadItem,
ChatMessageInfoItem,
+ ChatThreadItem,
} from '../selectors/chat-selectors.js';
import { useGlobalThreadSearchIndex } from '../selectors/nav-selectors.js';
import {
- threadInfoSelector,
pendingToRealizedThreadIDsSelector,
+ threadInfoSelector,
threadInfosSelectorForThreadType,
} from '../selectors/thread-selectors.js';
import {
@@ -54,12 +54,12 @@
import type { CalendarQuery } from '../types/entry-types.js';
import { messageTypes } from '../types/message-types-enum.js';
import {
- type RobotextMessageInfo,
type ComposableMessageInfo,
+ type RobotextMessageInfo,
} from '../types/message-types.js';
import type {
- RawThreadInfo,
MinimallyEncodedThreadCurrentUserInfo,
+ RawThreadInfo,
ThreadInfo,
} from '../types/minimally-encoded-thread-permissions-types.js';
import {
@@ -69,56 +69,56 @@
} from '../types/minimally-encoded-thread-permissions-types.js';
import { userRelationshipStatus } from '../types/relationship-types.js';
import {
- threadPermissionPropagationPrefixes,
- threadPermissions,
configurableCommunityPermissions,
type ThreadPermission,
+ threadPermissionFilterPrefixes,
+ threadPermissionPropagationPrefixes,
+ threadPermissions,
type ThreadPermissionsInfo,
type UserSurfacedPermission,
- threadPermissionFilterPrefixes,
} from '../types/thread-permission-types.js';
import {
+ assertThreadType,
type ThreadType,
- threadTypes,
threadTypeIsCommunityRoot,
- assertThreadType,
+ threadTypes,
} from '../types/thread-types-enum.js';
import type {
+ ChangeThreadSettingsPayload,
+ ClientNewThreadRequest,
LegacyRawThreadInfo,
LegacyThreadInfo,
MemberInfo,
- ServerThreadInfo,
- ThreadCurrentUserInfo,
+ MixedRawThreadInfos,
+ NewThreadResult,
+ RelativeMemberInfo,
RoleInfo,
ServerMemberInfo,
- ClientNewThreadRequest,
- NewThreadResult,
- ChangeThreadSettingsPayload,
+ ServerThreadInfo,
+ ThreadCurrentUserInfo,
UserProfileThreadInfo,
- RelativeMemberInfo,
- MixedRawThreadInfos,
} from '../types/thread-types.js';
import { updateTypes } from '../types/update-types-enum.js';
import { type ClientUpdateInfo } from '../types/update-types.js';
import type {
- GlobalAccountUserInfo,
- UserInfos,
AccountUserInfo,
+ GlobalAccountUserInfo,
LoggedInUserInfo,
UserInfo,
+ UserInfos,
} from '../types/user-types.js';
import { useLegacyAshoatKeyserverCall } from '../utils/action-utils.js';
import type { GetENSNames } from '../utils/ens-helpers.js';
import {
- ET,
entityTextToRawString,
+ ET,
getEntityTextAsString,
type ThreadEntity,
type UserEntity,
} from '../utils/entity-text.js';
import {
- useDispatchActionPromise,
type DispatchActionPromise,
+ useDispatchActionPromise,
} from '../utils/redux-promise-utils.js';
import { useSelector } from '../utils/redux-utils.js';
import { firstLine } from '../utils/string-utils.js';
@@ -1524,7 +1524,7 @@
function getThreadListSearchResults(
chatListData: $ReadOnlyArray<ChatThreadItem>,
searchText: string,
- threadFilter: (LegacyThreadInfo | ThreadInfo) => boolean,
+ threadFilter: ThreadInfo => boolean,
threadSearchResults: $ReadOnlySet<string>,
usersSearchResults: $ReadOnlyArray<GlobalAccountUserInfo>,
loggedInUserInfo: ?LoggedInUserInfo,
diff --git a/native/avatars/edit-thread-avatar.react.js b/native/avatars/edit-thread-avatar.react.js
--- a/native/avatars/edit-thread-avatar.react.js
+++ b/native/avatars/edit-thread-avatar.react.js
@@ -7,10 +7,9 @@
import { EditThreadAvatarContext } from 'lib/components/base-edit-thread-avatar-provider.react.js';
import type {
- ThreadInfo,
RawThreadInfo,
+ ThreadInfo,
} from 'lib/types/minimally-encoded-thread-permissions-types.js';
-import type { LegacyThreadInfo } from 'lib/types/thread-types.js';
import {
useNativeSetThreadAvatar,
@@ -26,7 +25,7 @@
import { useStyles } from '../themes/colors.js';
type Props = {
- +threadInfo: RawThreadInfo | LegacyThreadInfo | ThreadInfo,
+ +threadInfo: RawThreadInfo | ThreadInfo,
+disabled?: boolean,
};
function EditThreadAvatar(props: Props): React.Node {
diff --git a/native/avatars/thread-avatar.react.js b/native/avatars/thread-avatar.react.js
--- a/native/avatars/thread-avatar.react.js
+++ b/native/avatars/thread-avatar.react.js
@@ -10,21 +10,16 @@
import type { AvatarSize } from 'lib/types/avatar-types.js';
import type {
ThreadInfo,
- ResolvedThreadInfo,
RawThreadInfo,
+ ResolvedThreadInfo,
} from 'lib/types/minimally-encoded-thread-permissions-types.js';
import { threadTypes } from 'lib/types/thread-types-enum.js';
-import type { LegacyThreadInfo } from 'lib/types/thread-types.js';
import Avatar from './avatar.react.js';
import { useSelector } from '../redux/redux-utils.js';
type Props = {
- +threadInfo:
- | RawThreadInfo
- | LegacyThreadInfo
- | ThreadInfo
- | ResolvedThreadInfo,
+ +threadInfo: RawThreadInfo | ThreadInfo | ResolvedThreadInfo,
+size: AvatarSize,
};
diff --git a/native/chat/chat-thread-list.react.js b/native/chat/chat-thread-list.react.js
--- a/native/chat/chat-thread-list.react.js
+++ b/native/chat/chat-thread-list.react.js
@@ -33,7 +33,6 @@
} from 'lib/shared/thread-utils.js';
import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
import { threadTypes } from 'lib/types/thread-types-enum.js';
-import type { LegacyThreadInfo } from 'lib/types/thread-types.js';
import type { UserInfo } from 'lib/types/user-types.js';
import { ChatThreadListItem } from './chat-thread-list-item.react.js';
@@ -77,7 +76,7 @@
+route:
| NavigationRoute<'HomeChatThreadList'>
| NavigationRoute<'BackgroundChatThreadList'>,
- +filterThreads: (threadItem: LegacyThreadInfo | ThreadInfo) => boolean,
+ +filterThreads: (threadItem: ThreadInfo) => boolean,
+emptyItem?: React.ComponentType<{}>,
};
export type SearchStatus = 'inactive' | 'activating' | 'active';
@@ -127,8 +126,7 @@
);
const onSwipeableWillOpen = React.useCallback(
- (threadInfo: LegacyThreadInfo | ThreadInfo) =>
- setOpenedSwipeableID(threadInfo.id),
+ (threadInfo: ThreadInfo) => setOpenedSwipeableID(threadInfo.id),
[],
);
@@ -188,7 +186,7 @@
);
const onPressSeeMoreSidebars = React.useCallback(
- (threadInfo: LegacyThreadInfo | ThreadInfo) => {
+ (threadInfo: ThreadInfo) => {
onChangeSearchText('');
if (searchInputRef.current) {
searchInputRef.current.blur();
diff --git a/native/chat/fullscreen-thread-media-gallery.react.js b/native/chat/fullscreen-thread-media-gallery.react.js
--- a/native/chat/fullscreen-thread-media-gallery.react.js
+++ b/native/chat/fullscreen-thread-media-gallery.react.js
@@ -4,7 +4,6 @@
import { Text, TouchableOpacity, View } from 'react-native';
import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
-import type { LegacyThreadInfo } from 'lib/types/thread-types.js';
import type { ChatNavigationProp } from './chat.react.js';
import ThreadSettingsMediaGallery from './settings/thread-settings-media-gallery.react.js';
@@ -13,7 +12,7 @@
import type { VerticalBounds } from '../types/layout-types.js';
export type FullScreenThreadMediaGalleryParams = {
- +threadInfo: LegacyThreadInfo | ThreadInfo,
+ +threadInfo: ThreadInfo,
};
const Tabs = {
diff --git a/native/chat/inline-engagement.react.js b/native/chat/inline-engagement.react.js
--- a/native/chat/inline-engagement.react.js
+++ b/native/chat/inline-engagement.react.js
@@ -14,7 +14,6 @@
import { useNextLocalID } from 'lib/shared/message-utils.js';
import type { MessageInfo } from 'lib/types/message-types.js';
import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
-import type { LegacyThreadInfo } from 'lib/types/thread-types.js';
import {
avatarOffset,
@@ -33,7 +32,7 @@
import type { ChatMessageInfoItemWithHeight } from '../types/chat-types.js';
function dummyNodeForInlineEngagementHeightMeasurement(
- sidebarInfo: ?LegacyThreadInfo | ?ThreadInfo,
+ sidebarInfo: ?ThreadInfo,
reactions: ReactionInfo,
): React.Element<typeof View> {
return (
@@ -49,7 +48,7 @@
type DummyInlineEngagementNodeProps = {
...React.ElementConfig<typeof View>,
+editedLabel?: ?string,
- +sidebarInfo: ?LegacyThreadInfo | ?ThreadInfo,
+ +sidebarInfo: ?ThreadInfo,
+reactions: ReactionInfo,
};
function DummyInlineEngagementNode(
diff --git a/native/chat/inner-robotext-message.react.js b/native/chat/inner-robotext-message.react.js
--- a/native/chat/inner-robotext-message.react.js
+++ b/native/chat/inner-robotext-message.react.js
@@ -7,7 +7,6 @@
import type { ReactionInfo } from 'lib/selectors/chat-selectors.js';
import { threadInfoSelector } from 'lib/selectors/thread-selectors.js';
import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
-import type { LegacyThreadInfo } from 'lib/types/thread-types.js';
import {
type EntityText,
entityTextToRawString,
@@ -27,7 +26,7 @@
function dummyNodeForRobotextMessageHeightMeasurement(
robotext: EntityText,
threadID: string,
- sidebarInfo: ?LegacyThreadInfo | ?ThreadInfo,
+ sidebarInfo: ?ThreadInfo,
reactions: ReactionInfo,
): React.Element<typeof View> {
return (
diff --git a/native/chat/inner-text-message.react.js b/native/chat/inner-text-message.react.js
--- a/native/chat/inner-text-message.react.js
+++ b/native/chat/inner-text-message.react.js
@@ -7,7 +7,6 @@
import type { ReactionInfo } from 'lib/selectors/chat-selectors.js';
import { colorIsDark } from 'lib/shared/color-utils.js';
import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
-import type { LegacyThreadInfo } from 'lib/types/thread-types.js';
import { useComposedMessageMaxWidth } from './composed-message-width.js';
import { DummyInlineEngagementNode } from './inline-engagement.react.js';
@@ -32,7 +31,7 @@
function dummyNodeForTextMessageHeightMeasurement(
text: string,
editedLabel?: ?string,
- sidebarInfo: ?LegacyThreadInfo | ?ThreadInfo,
+ sidebarInfo: ?ThreadInfo,
reactions: ReactionInfo,
): React.Element<typeof View> {
return (
diff --git a/native/chat/message-list.react.js b/native/chat/message-list.react.js
--- a/native/chat/message-list.react.js
+++ b/native/chat/message-list.react.js
@@ -21,7 +21,6 @@
import type { FetchMessageInfosPayload } from 'lib/types/message-types.js';
import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
import { threadTypes } from 'lib/types/thread-types-enum.js';
-import type { LegacyThreadInfo } from 'lib/types/thread-types.js';
import {
type DispatchActionPromise,
useDispatchActionPromise,
@@ -69,7 +68,7 @@
};
type BaseProps = {
- +threadInfo: LegacyThreadInfo | ThreadInfo,
+ +threadInfo: ThreadInfo,
+messageListData: $ReadOnlyArray<ChatMessageItemWithHeight>,
+navigation: ChatNavigationProp<'MessageList'>,
+route: NavigationRoute<'MessageList'>,
diff --git a/native/chat/message-preview.react.js b/native/chat/message-preview.react.js
--- a/native/chat/message-preview.react.js
+++ b/native/chat/message-preview.react.js
@@ -8,7 +8,6 @@
import { useMessagePreview } from 'lib/shared/message-utils.js';
import { type MessageInfo } from 'lib/types/message-types.js';
import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
-import type { LegacyThreadInfo } from 'lib/types/thread-types.js';
import SingleLine from '../components/single-line.react.js';
import { getDefaultTextMessageRules } from '../markdown/rules.react.js';
@@ -16,7 +15,7 @@
type Props = {
+messageInfo: MessageInfo,
- +threadInfo: LegacyThreadInfo | ThreadInfo,
+ +threadInfo: ThreadInfo,
};
function MessagePreview(props: Props): React.Node {
const { messageInfo, threadInfo } = props;
diff --git a/native/chat/relationship-prompt.react.js b/native/chat/relationship-prompt.react.js
--- a/native/chat/relationship-prompt.react.js
+++ b/native/chat/relationship-prompt.react.js
@@ -7,7 +7,6 @@
import { useRelationshipPrompt } from 'lib/hooks/relationship-prompt.js';
import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
import { userRelationshipStatus } from 'lib/types/relationship-types.js';
-import type { LegacyThreadInfo } from 'lib/types/thread-types.js';
import type { UserInfo } from 'lib/types/user-types.js';
import Button from '../components/button.react.js';
@@ -16,7 +15,7 @@
type Props = {
+pendingPersonalThreadUserInfo: ?UserInfo,
- +threadInfo: LegacyThreadInfo | ThreadInfo,
+ +threadInfo: ThreadInfo,
};
const RelationshipPrompt: React.ComponentType<Props> = React.memo<Props>(
diff --git a/native/chat/settings/add-users-modal.react.js b/native/chat/settings/add-users-modal.react.js
--- a/native/chat/settings/add-users-modal.react.js
+++ b/native/chat/settings/add-users-modal.react.js
@@ -14,7 +14,6 @@
import { usePotentialMemberItems } from 'lib/shared/search-utils.js';
import { threadActualMembers } from 'lib/shared/thread-utils.js';
import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
-import type { LegacyThreadInfo } from 'lib/types/thread-types.js';
import { type AccountUserInfo } from 'lib/types/user-types.js';
import { useDispatchActionPromise } from 'lib/utils/redux-promise-utils.js';
@@ -43,7 +42,7 @@
export type AddUsersModalParams = {
+presentedFrom: string,
- +threadInfo: LegacyThreadInfo | ThreadInfo,
+ +threadInfo: ThreadInfo,
};
type Props = {
diff --git a/native/chat/settings/color-selector-modal.react.js b/native/chat/settings/color-selector-modal.react.js
--- a/native/chat/settings/color-selector-modal.react.js
+++ b/native/chat/settings/color-selector-modal.react.js
@@ -12,7 +12,6 @@
import {
type ChangeThreadSettingsPayload,
type UpdateThreadRequest,
- type LegacyThreadInfo,
} from 'lib/types/thread-types.js';
import {
type DispatchActionPromise,
@@ -30,7 +29,7 @@
export type ColorSelectorModalParams = {
+presentedFrom: string,
+color: string,
- +threadInfo: LegacyThreadInfo | ThreadInfo,
+ +threadInfo: ThreadInfo,
+setColor: (color: string) => void,
};
diff --git a/native/chat/settings/delete-thread.react.js b/native/chat/settings/delete-thread.react.js
--- a/native/chat/settings/delete-thread.react.js
+++ b/native/chat/settings/delete-thread.react.js
@@ -29,10 +29,7 @@
ResolvedThreadInfo,
ThreadInfo,
} from 'lib/types/minimally-encoded-thread-permissions-types.js';
-import type {
- LeaveThreadPayload,
- LegacyThreadInfo,
-} from 'lib/types/thread-types.js';
+import type { LeaveThreadPayload } from 'lib/types/thread-types.js';
import { useResolvedThreadInfo } from 'lib/utils/entity-helpers.js';
import {
type DispatchActionPromise,
@@ -52,7 +49,7 @@
import type { ChatNavigationProp } from '../chat.react.js';
export type DeleteThreadParams = {
- +threadInfo: LegacyThreadInfo | ThreadInfo,
+ +threadInfo: ThreadInfo,
};
const unboundStyles = {
diff --git a/native/chat/settings/emoji-thread-avatar-creation.react.js b/native/chat/settings/emoji-thread-avatar-creation.react.js
--- a/native/chat/settings/emoji-thread-avatar-creation.react.js
+++ b/native/chat/settings/emoji-thread-avatar-creation.react.js
@@ -7,10 +7,9 @@
import { savedEmojiAvatarSelectorForThread } from 'lib/selectors/thread-selectors.js';
import type { UpdateUserAvatarRequest } from 'lib/types/avatar-types.js';
import type {
- ThreadInfo,
RawThreadInfo,
+ ThreadInfo,
} from 'lib/types/minimally-encoded-thread-permissions-types.js';
-import type { LegacyThreadInfo } from 'lib/types/thread-types.js';
import { useNativeSetThreadAvatar } from '../../avatars/avatar-hooks.js';
import EmojiAvatarCreation from '../../avatars/emoji-avatar-creation.react.js';
@@ -20,7 +19,7 @@
import { useSelector } from '../../redux/redux-utils.js';
export type EmojiThreadAvatarCreationParams = {
- +threadInfo: RawThreadInfo | LegacyThreadInfo | ThreadInfo,
+ +threadInfo: RawThreadInfo | ThreadInfo,
};
type Props = {
diff --git a/native/chat/settings/thread-settings-color.react.js b/native/chat/settings/thread-settings-color.react.js
--- a/native/chat/settings/thread-settings-color.react.js
+++ b/native/chat/settings/thread-settings-color.react.js
@@ -7,7 +7,6 @@
import { createLoadingStatusSelector } from 'lib/selectors/loading-selectors.js';
import type { LoadingStatus } from 'lib/types/loading-types.js';
import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
-import type { LegacyThreadInfo } from 'lib/types/thread-types.js';
import type { ThreadSettingsNavigate } from './thread-settings.react.js';
import ColorSplotch from '../../components/color-splotch.react.js';
@@ -39,7 +38,7 @@
};
type BaseProps = {
- +threadInfo: LegacyThreadInfo | ThreadInfo,
+ +threadInfo: ThreadInfo,
+colorEditValue: string,
+setColorEditValue: (color: string) => void,
+canChangeSettings: boolean,
diff --git a/native/chat/settings/thread-settings-description.react.js b/native/chat/settings/thread-settings-description.react.js
--- a/native/chat/settings/thread-settings-description.react.js
+++ b/native/chat/settings/thread-settings-description.react.js
@@ -21,7 +21,6 @@
import {
type ChangeThreadSettingsPayload,
type UpdateThreadRequest,
- type LegacyThreadInfo,
} from 'lib/types/thread-types.js';
import {
type DispatchActionPromise,
@@ -88,7 +87,7 @@
};
type BaseProps = {
- +threadInfo: LegacyThreadInfo | ThreadInfo,
+ +threadInfo: ThreadInfo,
+descriptionEditValue: ?string,
+setDescriptionEditValue: (value: ?string, callback?: () => void) => void,
+descriptionTextHeight: ?number,
diff --git a/native/chat/settings/thread-settings-edit-relationship.react.js b/native/chat/settings/thread-settings-edit-relationship.react.js
--- a/native/chat/settings/thread-settings-edit-relationship.react.js
+++ b/native/chat/settings/thread-settings-edit-relationship.react.js
@@ -19,7 +19,6 @@
type RelationshipAction,
type RelationshipButton,
} from 'lib/types/relationship-types.js';
-import type { LegacyThreadInfo } from 'lib/types/thread-types.js';
import { useLegacyAshoatKeyserverCall } from 'lib/utils/action-utils.js';
import { useDispatchActionPromise } from 'lib/utils/redux-promise-utils.js';
@@ -30,7 +29,7 @@
import Alert from '../../utils/alert.js';
type Props = {
- +threadInfo: LegacyThreadInfo | ThreadInfo,
+ +threadInfo: ThreadInfo,
+buttonStyle: ViewStyle,
+relationshipButton: RelationshipButton,
};
diff --git a/native/chat/settings/thread-settings-home-notifs.react.js b/native/chat/settings/thread-settings-home-notifs.react.js
--- a/native/chat/settings/thread-settings-home-notifs.react.js
+++ b/native/chat/settings/thread-settings-home-notifs.react.js
@@ -12,7 +12,6 @@
SubscriptionUpdateRequest,
SubscriptionUpdateResult,
} from 'lib/types/subscription-types.js';
-import type { LegacyThreadInfo } from 'lib/types/thread-types.js';
import {
type DispatchActionPromise,
useDispatchActionPromise,
@@ -44,7 +43,7 @@
};
type BaseProps = {
- +threadInfo: LegacyThreadInfo | ThreadInfo,
+ +threadInfo: ThreadInfo,
};
type Props = {
...BaseProps,
diff --git a/native/chat/settings/thread-settings-leave-thread.react.js b/native/chat/settings/thread-settings-leave-thread.react.js
--- a/native/chat/settings/thread-settings-leave-thread.react.js
+++ b/native/chat/settings/thread-settings-leave-thread.react.js
@@ -14,10 +14,7 @@
import { identifyInvalidatedThreads } from 'lib/shared/thread-utils.js';
import type { LoadingStatus } from 'lib/types/loading-types.js';
import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
-import type {
- LeaveThreadPayload,
- LegacyThreadInfo,
-} from 'lib/types/thread-types.js';
+import type { LeaveThreadPayload } from 'lib/types/thread-types.js';
import {
type DispatchActionPromise,
useDispatchActionPromise,
@@ -52,7 +49,7 @@
};
type BaseProps = {
- +threadInfo: LegacyThreadInfo | ThreadInfo,
+ +threadInfo: ThreadInfo,
+buttonStyle: ViewStyle,
};
type Props = {
diff --git a/native/chat/settings/thread-settings-member-tooltip-modal.react.js b/native/chat/settings/thread-settings-member-tooltip-modal.react.js
--- a/native/chat/settings/thread-settings-member-tooltip-modal.react.js
+++ b/native/chat/settings/thread-settings-member-tooltip-modal.react.js
@@ -6,10 +6,7 @@
import { removeMemberFromThread } from 'lib/shared/thread-utils.js';
import { stringForUser } from 'lib/shared/user-utils.js';
import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
-import type {
- LegacyThreadInfo,
- RelativeMemberInfo,
-} from 'lib/types/thread-types.js';
+import type { RelativeMemberInfo } from 'lib/types/thread-types.js';
import { useDispatchActionPromise } from 'lib/utils/redux-promise-utils.js';
import ThreadSettingsMemberTooltipButton from './thread-settings-member-tooltip-button.react.js';
@@ -26,7 +23,7 @@
export type ThreadSettingsMemberTooltipModalParams = TooltipParams<{
+memberInfo: RelativeMemberInfo,
- +threadInfo: LegacyThreadInfo | ThreadInfo,
+ +threadInfo: ThreadInfo,
}>;
function useOnRemoveUser(
diff --git a/native/chat/settings/thread-settings-member.react.js b/native/chat/settings/thread-settings-member.react.js
--- a/native/chat/settings/thread-settings-member.react.js
+++ b/native/chat/settings/thread-settings-member.react.js
@@ -20,10 +20,7 @@
import { stringForUser } from 'lib/shared/user-utils.js';
import type { LoadingStatus } from 'lib/types/loading-types.js';
import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
-import type {
- LegacyThreadInfo,
- RelativeMemberInfo,
-} from 'lib/types/thread-types.js';
+import type { RelativeMemberInfo } from 'lib/types/thread-types.js';
import { useRolesFromCommunityThreadInfo } from 'lib/utils/role-utils.js';
import type { ThreadSettingsNavigate } from './thread-settings.react.js';
@@ -91,7 +88,7 @@
type BaseProps = {
+memberInfo: RelativeMemberInfo,
- +threadInfo: LegacyThreadInfo | ThreadInfo,
+ +threadInfo: ThreadInfo,
+canEdit: boolean,
+navigate: ThreadSettingsNavigate,
+firstListItem: boolean,
diff --git a/native/chat/settings/thread-settings-promote-sidebar.react.js b/native/chat/settings/thread-settings-promote-sidebar.react.js
--- a/native/chat/settings/thread-settings-promote-sidebar.react.js
+++ b/native/chat/settings/thread-settings-promote-sidebar.react.js
@@ -6,7 +6,6 @@
import { usePromoteSidebar } from 'lib/hooks/promote-sidebar.react.js';
import type { LoadingStatus } from 'lib/types/loading-types.js';
import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
-import type { LegacyThreadInfo } from 'lib/types/thread-types.js';
import Button from '../../components/button.react.js';
import { type Colors, useColors, useStyles } from '../../themes/colors.js';
@@ -31,7 +30,7 @@
};
type BaseProps = {
- +threadInfo: LegacyThreadInfo | ThreadInfo,
+ +threadInfo: ThreadInfo,
+buttonStyle: ViewStyle,
};
type Props = {
diff --git a/native/chat/settings/thread-settings-push-notifs.react.js b/native/chat/settings/thread-settings-push-notifs.react.js
--- a/native/chat/settings/thread-settings-push-notifs.react.js
+++ b/native/chat/settings/thread-settings-push-notifs.react.js
@@ -15,7 +15,6 @@
SubscriptionUpdateRequest,
SubscriptionUpdateResult,
} from 'lib/types/subscription-types.js';
-import type { LegacyThreadInfo } from 'lib/types/thread-types.js';
import {
type DispatchActionPromise,
useDispatchActionPromise,
@@ -54,7 +53,7 @@
};
type BaseProps = {
- +threadInfo: LegacyThreadInfo | ThreadInfo,
+ +threadInfo: ThreadInfo,
};
type Props = {
...BaseProps,
diff --git a/native/chat/settings/thread-settings-visibility.react.js b/native/chat/settings/thread-settings-visibility.react.js
--- a/native/chat/settings/thread-settings-visibility.react.js
+++ b/native/chat/settings/thread-settings-visibility.react.js
@@ -4,13 +4,12 @@
import { Text, View } from 'react-native';
import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
-import type { LegacyThreadInfo } from 'lib/types/thread-types.js';
import ThreadVisibility from '../../components/thread-visibility.react.js';
import { useColors, useStyles } from '../../themes/colors.js';
type Props = {
- +threadInfo: LegacyThreadInfo | ThreadInfo,
+ +threadInfo: ThreadInfo,
};
function ThreadSettingsVisibility(props: Props): React.Node {
const styles = useStyles(unboundStyles);
diff --git a/native/chat/sidebar-list-modal.react.js b/native/chat/sidebar-list-modal.react.js
--- a/native/chat/sidebar-list-modal.react.js
+++ b/native/chat/sidebar-list-modal.react.js
@@ -5,7 +5,7 @@
import { useSearchSidebars } from 'lib/hooks/search-threads.js';
import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
-import type { LegacyThreadInfo, SidebarInfo } from 'lib/types/thread-types.js';
+import type { SidebarInfo } from 'lib/types/thread-types.js';
import { SidebarItem } from './sidebar-item.react.js';
import ThreadListModal from './thread-list-modal.react.js';
@@ -17,7 +17,7 @@
import Arrow from '../vectors/arrow.react.js';
export type SidebarListModalParams = {
- +threadInfo: LegacyThreadInfo | ThreadInfo,
+ +threadInfo: ThreadInfo,
};
type Props = {
@@ -31,7 +31,7 @@
const numOfSidebarsWithExtendedArrow = listData.length - 1;
const createRenderItem = React.useCallback(
- (onPressItem: (threadInfo: LegacyThreadInfo | ThreadInfo) => void) =>
+ (onPressItem: (threadInfo: ThreadInfo) => void) =>
// eslint-disable-next-line react/display-name
(row: { +item: SidebarInfo, +index: number, ... }) => {
let extendArrow: boolean = false;
@@ -65,7 +65,7 @@
function Item(props: {
item: SidebarInfo,
- onPressItem: (threadInfo: LegacyThreadInfo | ThreadInfo) => void,
+ onPressItem: (threadInfo: ThreadInfo) => void,
extendArrow: boolean,
}): React.Node {
const { item, onPressItem, extendArrow } = props;
diff --git a/native/chat/subchannels-list-modal.react.js b/native/chat/subchannels-list-modal.react.js
--- a/native/chat/subchannels-list-modal.react.js
+++ b/native/chat/subchannels-list-modal.react.js
@@ -6,7 +6,6 @@
import { useSearchSubchannels } from 'lib/hooks/search-threads.js';
import type { ChatThreadItem } from 'lib/selectors/chat-selectors.js';
import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
-import type { LegacyThreadInfo } from 'lib/types/thread-types.js';
import SubchannelItem from './subchannel-item.react.js';
import ThreadListModal from './thread-list-modal.react.js';
@@ -16,7 +15,7 @@
import { useColors, useStyles } from '../themes/colors.js';
export type SubchannelListModalParams = {
- +threadInfo: LegacyThreadInfo | ThreadInfo,
+ +threadInfo: ThreadInfo,
};
type Props = {
@@ -42,14 +41,14 @@
}
const createRenderItem =
- (onPressItem: (threadInfo: LegacyThreadInfo | ThreadInfo) => void) =>
+ (onPressItem: (threadInfo: ThreadInfo) => void) =>
// eslint-disable-next-line react/display-name
(row: { +item: ChatThreadItem, +index: number, ... }) => {
return <Item subchannelInfo={row.item} onPressItem={onPressItem} />;
};
function Item(props: {
- onPressItem: (threadInfo: LegacyThreadInfo | ThreadInfo) => void,
+ onPressItem: (threadInfo: ThreadInfo) => void,
subchannelInfo: ChatThreadItem,
}): React.Node {
const { onPressItem, subchannelInfo } = props;
diff --git a/native/components/community-actions-button.react.js b/native/components/community-actions-button.react.js
--- a/native/components/community-actions-button.react.js
+++ b/native/components/community-actions-button.react.js
@@ -10,7 +10,6 @@
import { threadHasPermission } from 'lib/shared/thread-utils.js';
import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
import { threadPermissions } from 'lib/types/thread-permission-types.js';
-import type { LegacyThreadInfo } from 'lib/types/thread-types.js';
import SWMansionIcon from './swmansion-icon.react.js';
import {
@@ -24,7 +23,7 @@
import { useStyles } from '../themes/colors.js';
type Props = {
- +community: LegacyThreadInfo | ThreadInfo,
+ +community: ThreadInfo,
};
function CommunityActionsButton(props: Props): React.Node {
diff --git a/native/components/thread-ancestors.react.js b/native/components/thread-ancestors.react.js
--- a/native/components/thread-ancestors.react.js
+++ b/native/components/thread-ancestors.react.js
@@ -7,7 +7,6 @@
import { ancestorThreadInfos } from 'lib/selectors/thread-selectors.js';
import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
-import type { LegacyThreadInfo } from 'lib/types/thread-types.js';
import Button from './button.react.js';
import CommunityPill from './community-pill.react.js';
@@ -17,7 +16,7 @@
import { useColors, useStyles } from '../themes/colors.js';
type Props = {
- +threadInfo: LegacyThreadInfo | ThreadInfo,
+ +threadInfo: ThreadInfo,
};
function ThreadAncestors(props: Props): React.Node {
diff --git a/native/invite-links/manage-public-link-screen.react.js b/native/invite-links/manage-public-link-screen.react.js
--- a/native/invite-links/manage-public-link-screen.react.js
+++ b/native/invite-links/manage-public-link-screen.react.js
@@ -11,7 +11,6 @@
inviteLinkErrorMessages,
} from 'lib/shared/invite-links.js';
import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
-import type { LegacyThreadInfo } from 'lib/types/thread-types.js';
import Button from '../components/button.react.js';
import TextInput from '../components/text-input.react.js';
@@ -22,7 +21,7 @@
import Alert from '../utils/alert.js';
export type ManagePublicLinkScreenParams = {
- +community: LegacyThreadInfo | ThreadInfo,
+ +community: ThreadInfo,
};
type Props = {
diff --git a/native/invite-links/view-invite-links-screen.react.js b/native/invite-links/view-invite-links-screen.react.js
--- a/native/invite-links/view-invite-links-screen.react.js
+++ b/native/invite-links/view-invite-links-screen.react.js
@@ -11,7 +11,6 @@
import type { InviteLink } from 'lib/types/link-types.js';
import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
import { threadPermissions } from 'lib/types/thread-permission-types.js';
-import type { LegacyThreadInfo } from 'lib/types/thread-types.js';
import SingleLine from '../components/single-line.react.js';
import SWMansionIcon from '../components/swmansion-icon.react.js';
@@ -25,7 +24,7 @@
import { useColors, useStyles } from '../themes/colors.js';
export type ViewInviteLinksScreenParams = {
- +community: LegacyThreadInfo | ThreadInfo,
+ +community: ThreadInfo,
};
type Props = {
diff --git a/native/keyboard/keyboard-state-container.react.js b/native/keyboard/keyboard-state-container.react.js
--- a/native/keyboard/keyboard-state-container.react.js
+++ b/native/keyboard/keyboard-state-container.react.js
@@ -5,7 +5,6 @@
import { KeyboardUtils } from 'react-native-keyboard-input';
import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
-import type { LegacyThreadInfo } from 'lib/types/thread-types.js';
import sleep from 'lib/utils/sleep.js';
import KeyboardInputHost from './keyboard-input-host.react.js';
@@ -24,7 +23,7 @@
type State = {
+systemKeyboardShowing: boolean,
+mediaGalleryOpen: boolean,
- +mediaGalleryThread: ?LegacyThreadInfo | ?ThreadInfo,
+ +mediaGalleryThread: ?ThreadInfo,
+renderKeyboardInputHost: boolean,
};
class KeyboardStateContainer extends React.PureComponent<Props, State> {
@@ -94,9 +93,7 @@
return systemKeyboardShowing || mediaGalleryOpen;
}
- showMediaGallery: (thread: LegacyThreadInfo | ThreadInfo) => void = (
- thread: LegacyThreadInfo | ThreadInfo,
- ) => {
+ showMediaGallery: (thread: ThreadInfo) => void = (thread: ThreadInfo) => {
this.setState({
mediaGalleryOpen: true,
mediaGalleryThread: thread,
@@ -111,7 +108,7 @@
});
};
- getMediaGalleryThread: () => ?LegacyThreadInfo | ?ThreadInfo = () =>
+ getMediaGalleryThread: () => ?ThreadInfo = () =>
this.state.mediaGalleryThread;
render(): React.Node {
diff --git a/native/keyboard/keyboard-state.js b/native/keyboard/keyboard-state.js
--- a/native/keyboard/keyboard-state.js
+++ b/native/keyboard/keyboard-state.js
@@ -3,7 +3,6 @@
import * as React from 'react';
import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
-import type { LegacyThreadInfo } from 'lib/types/thread-types.js';
export type KeyboardState = {
+keyboardShowing: boolean,
@@ -11,9 +10,9 @@
+dismissKeyboardIfShowing: () => boolean,
+systemKeyboardShowing: boolean,
+mediaGalleryOpen: boolean,
- +showMediaGallery: (thread: LegacyThreadInfo | ThreadInfo) => void,
+ +showMediaGallery: (thread: ThreadInfo) => void,
+hideMediaGallery: () => void,
- +getMediaGalleryThread: () => ?LegacyThreadInfo | ?ThreadInfo,
+ +getMediaGalleryThread: () => ?ThreadInfo,
};
const KeyboardContext: React.Context<?KeyboardState> =
diff --git a/native/markdown/rules.react.js b/native/markdown/rules.react.js
--- a/native/markdown/rules.react.js
+++ b/native/markdown/rules.react.js
@@ -8,10 +8,7 @@
import * as SharedMarkdown from 'lib/shared/markdown.js';
import { chatMentionRegex } from 'lib/shared/mention-utils.js';
import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
-import type {
- ChatMentionCandidates,
- LegacyThreadInfo,
-} from 'lib/types/thread-types.js';
+import type { ChatMentionCandidates } from 'lib/types/thread-types.js';
import MarkdownChatMention from './markdown-chat-mention.react.js';
import MarkdownLink from './markdown-link.react.js';
@@ -349,7 +346,7 @@
});
function useTextMessageRulesFunc(
- threadInfo: LegacyThreadInfo | ThreadInfo,
+ threadInfo: ThreadInfo,
chatMentionCandidates: ChatMentionCandidates,
): (useDarkStyle: boolean) => MarkdownRules {
const { members } = threadInfo;
diff --git a/native/media/media-gallery-keyboard.react.js b/native/media/media-gallery-keyboard.react.js
--- a/native/media/media-gallery-keyboard.react.js
+++ b/native/media/media-gallery-keyboard.react.js
@@ -23,7 +23,6 @@
import { useIsAppForegrounded } from 'lib/shared/lifecycle-utils.js';
import type { MediaLibrarySelection } from 'lib/types/media-types.js';
import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
-import type { LegacyThreadInfo } from 'lib/types/thread-types.js';
import { getCompatibleMediaURI } from './identifier-utils.js';
import MediaGalleryMedia from './media-gallery-media.react.js';
@@ -103,7 +102,7 @@
};
type BaseProps = {
- +threadInfo: ?LegacyThreadInfo | ?ThreadInfo,
+ +threadInfo: ?ThreadInfo,
};
type Props = {
...BaseProps,
diff --git a/native/navigation/nav-selectors.js b/native/navigation/nav-selectors.js
--- a/native/navigation/nav-selectors.js
+++ b/native/navigation/nav-selectors.js
@@ -17,7 +17,6 @@
} from 'lib/types/message-types.js';
import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
import type { GlobalTheme } from 'lib/types/theme-types.js';
-import type { LegacyThreadInfo } from 'lib/types/thread-types.js';
import type { NavContextType } from './navigation-context.js';
import { NavContext } from './navigation-context.js';
@@ -404,7 +403,7 @@
}
function useCanEditMessageNative(
- threadInfo: LegacyThreadInfo | ThreadInfo,
+ threadInfo: ThreadInfo,
targetMessageInfo: ComposableMessageInfo | RobotextMessageInfo,
): boolean {
const route = useRoute();
diff --git a/native/navigation/subchannels-button.react.js b/native/navigation/subchannels-button.react.js
--- a/native/navigation/subchannels-button.react.js
+++ b/native/navigation/subchannels-button.react.js
@@ -6,13 +6,12 @@
import { Text, TouchableOpacity, View } from 'react-native';
import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
-import type { LegacyThreadInfo } from 'lib/types/thread-types.js';
import { SubchannelsListModalRouteName } from './route-names.js';
import { useStyles } from '../themes/colors.js';
type Props = {
- +threadInfo: LegacyThreadInfo | ThreadInfo,
+ +threadInfo: ThreadInfo,
};
function SubchnnelsButton(props: Props): React.Node {
diff --git a/native/roles/change-roles-screen.react.js b/native/roles/change-roles-screen.react.js
--- a/native/roles/change-roles-screen.react.js
+++ b/native/roles/change-roles-screen.react.js
@@ -13,10 +13,7 @@
import { roleIsAdminRole } from 'lib/shared/thread-utils.js';
import type { LoadingStatus } from 'lib/types/loading-types.js';
import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
-import type {
- LegacyThreadInfo,
- RelativeMemberInfo,
-} from 'lib/types/thread-types.js';
+import type { RelativeMemberInfo } from 'lib/types/thread-types.js';
import { values } from 'lib/utils/objects.js';
import ChangeRolesHeaderRightButton from './change-roles-header-right-button.react.js';
@@ -28,7 +25,7 @@
import { useStyles } from '../themes/colors.js';
export type ChangeRolesScreenParams = {
- +threadInfo: LegacyThreadInfo | ThreadInfo,
+ +threadInfo: ThreadInfo,
+memberInfo: RelativeMemberInfo,
+role: ?string,
};
diff --git a/native/roles/community-roles-screen.react.js b/native/roles/community-roles-screen.react.js
--- a/native/roles/community-roles-screen.react.js
+++ b/native/roles/community-roles-screen.react.js
@@ -10,7 +10,6 @@
useRoleUserSurfacedPermissions,
} from 'lib/shared/thread-utils.js';
import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
-import type { LegacyThreadInfo } from 'lib/types/thread-types.js';
import RolePanelEntry from './role-panel-entry.react.js';
import type { RolesNavigationProp } from './roles-navigator.react.js';
@@ -21,7 +20,7 @@
import { useStyles } from '../themes/colors.js';
export type CommunityRolesScreenParams = {
- +threadInfo: LegacyThreadInfo | ThreadInfo,
+ +threadInfo: ThreadInfo,
};
type CommunityRolesScreenProps = {
@@ -38,7 +37,7 @@
// manually pull in the threadInfo from the redux store, since the threadInfo
// passed into the route params will not be updated automatically.
const threadID = threadInfo.id;
- const reduxThreadInfo: ?LegacyThreadInfo | ?ThreadInfo = useSelector(
+ const reduxThreadInfo: ?ThreadInfo = useSelector(
state => threadInfoSelector(state)[threadID],
);
diff --git a/native/roles/create-roles-screen.react.js b/native/roles/create-roles-screen.react.js
--- a/native/roles/create-roles-screen.react.js
+++ b/native/roles/create-roles-screen.react.js
@@ -13,7 +13,6 @@
type UserSurfacedPermissionOption,
userSurfacedPermissionOptions,
} from 'lib/types/thread-permission-types.js';
-import type { LegacyThreadInfo } from 'lib/types/thread-types.js';
import CreateRolesHeaderRightButton from './create-roles-header-right-button.react.js';
import type { RolesNavigationProp } from './roles-navigator.react.js';
@@ -25,7 +24,7 @@
import { useStyles } from '../themes/colors.js';
export type CreateRolesScreenParams = {
- +threadInfo: LegacyThreadInfo | ThreadInfo,
+ +threadInfo: ThreadInfo,
+action: 'create_role' | 'edit_role',
+existingRoleID?: string,
+roleName: string,
diff --git a/native/roles/role-panel-entry.react.js b/native/roles/role-panel-entry.react.js
--- a/native/roles/role-panel-entry.react.js
+++ b/native/roles/role-panel-entry.react.js
@@ -8,7 +8,6 @@
import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
import type { UserSurfacedPermission } from 'lib/types/thread-permission-types.js';
-import type { LegacyThreadInfo } from 'lib/types/thread-types.js';
import { useDisplayDeleteRoleAlert } from './role-utils.react.js';
import type { RolesNavigationProp } from './roles-navigator.react.js';
@@ -20,7 +19,7 @@
type RolePanelEntryProps = {
+navigation: RolesNavigationProp<'CommunityRolesScreen'>,
- +threadInfo: LegacyThreadInfo | ThreadInfo,
+ +threadInfo: ThreadInfo,
+roleName: string,
+rolePermissions: $ReadOnlySet<UserSurfacedPermission>,
+memberCount: number,
diff --git a/native/roles/role-utils.react.js b/native/roles/role-utils.react.js
--- a/native/roles/role-utils.react.js
+++ b/native/roles/role-utils.react.js
@@ -7,14 +7,13 @@
useDeleteCommunityRole,
} from 'lib/actions/thread-actions.js';
import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
-import type { LegacyThreadInfo } from 'lib/types/thread-types.js';
import { useDispatchActionPromise } from 'lib/utils/redux-promise-utils.js';
import { constructRoleDeletionMessagePrompt } from 'lib/utils/role-utils.js';
import Alert from '../utils/alert.js';
function useDisplayDeleteRoleAlert(
- threadInfo: LegacyThreadInfo | ThreadInfo,
+ threadInfo: ThreadInfo,
existingRoleID: string,
defaultRoleID: string,
memberCount: number,
diff --git a/native/user-profile/user-profile-menu-button.react.js b/native/user-profile/user-profile-menu-button.react.js
--- a/native/user-profile/user-profile-menu-button.react.js
+++ b/native/user-profile/user-profile-menu-button.react.js
@@ -8,7 +8,6 @@
import { useRelationshipPrompt } from 'lib/hooks/relationship-prompt.js';
import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
import { userRelationshipStatus } from 'lib/types/relationship-types.js';
-import type { LegacyThreadInfo } from 'lib/types/thread-types.js';
import type { UserInfo } from 'lib/types/user-types';
import { userProfileMenuButtonHeight } from './user-profile-constants.js';
@@ -22,7 +21,7 @@
const onMenuButtonLayout = () => {};
type Props = {
- +threadInfo: LegacyThreadInfo | ThreadInfo,
+ +threadInfo: ThreadInfo,
+pendingPersonalThreadUserInfo: ?UserInfo,
};
diff --git a/native/user-profile/user-profile-relationship-button.react.js b/native/user-profile/user-profile-relationship-button.react.js
--- a/native/user-profile/user-profile-relationship-button.react.js
+++ b/native/user-profile/user-profile-relationship-button.react.js
@@ -7,7 +7,6 @@
import type { SetState } from 'lib/types/hook-types.js';
import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
import { userRelationshipStatus } from 'lib/types/relationship-types.js';
-import type { LegacyThreadInfo } from 'lib/types/thread-types.js';
import type { UserInfo } from 'lib/types/user-types';
import { userProfileActionButtonHeight } from './user-profile-constants.js';
@@ -20,7 +19,7 @@
};
type Props = {
- +threadInfo: LegacyThreadInfo | ThreadInfo,
+ +threadInfo: ThreadInfo,
+pendingPersonalThreadUserInfo?: UserInfo,
+setUserProfileRelationshipButtonHeight: SetState<number>,
};
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, Nov 6, 3:34 PM (22 h, 8 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2431301
Default Alt Text
D10676.id36054.diff (42 KB)
Attached To
Mode
D10676: [native] Remove all instances of `LegacyThreadInfo` from `native`
Attached
Detach File
Event Timeline
Log In to Comment