Page MenuHomePhabricator

D7672.diff
No OneTemporary

D7672.diff

diff --git a/native/chat/chat.react.js b/native/chat/chat.react.js
--- a/native/chat/chat.react.js
+++ b/native/chat/chat.react.js
@@ -39,6 +39,7 @@
import HomeChatThreadList from './home-chat-thread-list.react.js';
import MessageListContainer from './message-list-container.react.js';
import MessageListHeaderTitle from './message-list-header-title.react.js';
+import MessageResultsScreen from './message-results-screen.react.js';
import MessageStorePruner from './message-store-pruner.react.js';
import DeleteThread from './settings/delete-thread.react.js';
import EmojiThreadAvatarCreation from './settings/emoji-thread-avatar-creation.react.js';
@@ -59,6 +60,7 @@
ThreadSettingsRouteName,
EmojiThreadAvatarCreationRouteName,
FullScreenThreadMediaGalleryRouteName,
+ MessageResultsScreenRouteName,
MessageListRouteName,
ChatThreadListRouteName,
HomeChatThreadListRouteName,
@@ -266,6 +268,10 @@
headerTitle: 'Delete chat',
headerBackTitleVisible: false,
};
+const messageResultsScreenOptions = {
+ headerTitle: 'Pinned Messages',
+ headerBackTitleVisible: false,
+};
export type ChatNavigationProp<
RouteName: $Keys<ChatParamList> = $Keys<ChatParamList>,
@@ -374,6 +380,11 @@
component={DeleteThread}
options={deleteThreadOptions}
/>
+ <Chat.Screen
+ name={MessageResultsScreenRouteName}
+ component={MessageResultsScreen}
+ options={messageResultsScreenOptions}
+ />
</Chat.Navigator>
<MessageStorePruner />
<ThreadScreenPruner />
diff --git a/native/chat/message-list-container.react.js b/native/chat/message-list-container.react.js
--- a/native/chat/message-list-container.react.js
+++ b/native/chat/message-list-container.react.js
@@ -38,7 +38,10 @@
type OverlayContextType,
} from '../navigation/overlay-context.js';
import type { NavigationRoute } from '../navigation/route-names.js';
-import { ThreadSettingsRouteName } from '../navigation/route-names.js';
+import {
+ ThreadSettingsRouteName,
+ MessageResultsScreenRouteName,
+} from '../navigation/route-names.js';
import { useSelector } from '../redux/redux-utils.js';
import { type Colors, useColors, useStyles } from '../themes/colors.js';
import type { ChatMessageItemWithHeight } from '../types/chat-types.js';
@@ -370,6 +373,16 @@
bannerText = `${threadInfo.pinnedCount} pinned ${messageNoun}`;
}
+ const navigateToMessageResults = React.useCallback(() => {
+ props.navigation.navigate<'MessageResultsScreen'>({
+ name: MessageResultsScreenRouteName,
+ params: {
+ threadInfo,
+ },
+ key: `PinnedMessages${threadInfo.id}`,
+ });
+ }, [props.navigation, threadInfo]);
+
const pinnedCountBanner = React.useMemo(() => {
if (!bannerText) {
return null;
@@ -377,7 +390,12 @@
return (
<View style={styles.pinnedCountBanner}>
- <Text style={styles.pinnedCountText}>{bannerText}</Text>
+ <Text
+ onPress={navigateToMessageResults}
+ style={styles.pinnedCountText}
+ >
+ {bannerText}
+ </Text>
<Icon
name="chevron-right"
size={12}
@@ -386,6 +404,7 @@
</View>
);
}, [
+ navigateToMessageResults,
bannerText,
styles.pinnedCountBanner,
styles.pinnedCountText,
diff --git a/native/chat/message-results-screen.react.js b/native/chat/message-results-screen.react.js
new file mode 100644
--- /dev/null
+++ b/native/chat/message-results-screen.react.js
@@ -0,0 +1,24 @@
+// @flow
+
+import * as React from 'react';
+
+import type { ThreadInfo } from 'lib/types/thread-types.js';
+
+import type { ChatNavigationProp } from './chat.react';
+import type { NavigationRoute } from '../navigation/route-names';
+
+export type MessageResultsScreenParams = {
+ +threadInfo: ThreadInfo,
+};
+
+type MessageResultsScreenProps = {
+ +navigation: ChatNavigationProp<'MessageResultsScreen'>,
+ +route: NavigationRoute<'MessageResultsScreen'>,
+};
+
+// eslint-disable-next-line no-unused-vars
+function MessageResultsScreen(props: MessageResultsScreenProps): React.Node {
+ return null;
+}
+
+export default MessageResultsScreen;
diff --git a/native/navigation/route-names.js b/native/navigation/route-names.js
--- a/native/navigation/route-names.js
+++ b/native/navigation/route-names.js
@@ -13,6 +13,7 @@
import type { ImagePasteModalParams } from '../chat/image-paste-modal.react.js';
import type { MessageListParams } from '../chat/message-list-types.js';
import type { MessageReactionsModalParams } from '../chat/message-reactions-modal.react.js';
+import type { MessageResultsScreenParams } from '../chat/message-results-screen.react.js';
import type { MultimediaMessageTooltipModalParams } from '../chat/multimedia-message-tooltip-modal.react.js';
import type { RobotextMessageTooltipModalParams } from '../chat/robotext-message-tooltip-modal.react.js';
import type { AddUsersModalParams } from '../chat/settings/add-users-modal.react.js';
@@ -67,6 +68,7 @@
export const LoggedOutModalRouteName = 'LoggedOutModal';
export const MessageListRouteName = 'MessageList';
export const MessageReactionsModalRouteName = 'MessageReactionsModal';
+export const MessageResultsScreenRouteName = 'MessageResultsScreen';
export const MultimediaMessageTooltipModalRouteName =
'MultimediaMessageTooltipModal';
export const PrivacyPreferencesRouteName = 'PrivacyPreferences';
@@ -156,6 +158,7 @@
+EmojiThreadAvatarCreation: EmojiThreadAvatarCreationParams,
+DeleteThread: DeleteThreadParams,
+FullScreenThreadMediaGallery: FullScreenThreadMediaGalleryParams,
+ +MessageResultsScreen: MessageResultsScreenParams,
};
export type ChatTopTabsParamList = {
@@ -223,4 +226,5 @@
DeleteThreadRouteName,
ComposeSubchannelRouteName,
FullScreenThreadMediaGalleryRouteName,
+ MessageResultsScreenRouteName,
];

File Metadata

Mime Type
text/plain
Expires
Fri, Nov 29, 1:04 AM (21 h, 42 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2595324
Default Alt Text
D7672.diff (5 KB)

Event Timeline