Page MenuHomePhorge

D15239.1765072866.diff
No OneTemporary

Size
7 KB
Referenced Files
None
Subscribers
None

D15239.1765072866.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
@@ -30,7 +30,6 @@
useWindowDimensions,
type MeasureOnSuccessCallback,
} from 'react-native';
-import { KeyboardAvoidingView } from 'react-native-keyboard-controller';
import MessageStorePruner from 'lib/components/message-store-pruner.react.js';
import ThreadDraftUpdater from 'lib/components/thread-draft-updater.react.js';
@@ -460,72 +459,67 @@
return (
<View style={styles.view}>
- <KeyboardAvoidingView
- behavior="padding"
- style={styles.keyboardAvoidingView}
- >
- <Chat.Navigator screenOptions={screenOptions}>
- <Chat.Screen
- name={ChatThreadListRouteName}
- component={ChatThreadsComponent}
- options={chatThreadListOptions}
- />
- <Chat.Screen
- name={MessageListRouteName}
- component={MessageListContainer}
- options={messageListOptions}
- />
- <Chat.Screen
- name={ComposeSubchannelRouteName}
- component={ComposeSubchannel}
- options={composeThreadOptions}
- />
- <Chat.Screen
- name={ThreadSettingsRouteName}
- component={ThreadSettings}
- options={threadSettingsOptions}
- />
- <Chat.Screen
- name={EmojiThreadAvatarCreationRouteName}
- component={EmojiThreadAvatarCreation}
- options={emojiAvatarCreationOptions}
- />
- <Chat.Screen
- name={FullScreenThreadMediaGalleryRouteName}
- component={FullScreenThreadMediaGallery}
- options={fullScreenThreadMediaGalleryOptions}
- />
- <Chat.Screen
- name={DeleteThreadRouteName}
- component={DeleteThread}
- options={deleteThreadOptions}
- />
- <Chat.Screen
- name={PinnedMessagesScreenRouteName}
- component={PinnedMessagesScreen}
- options={pinnedMessagesScreenOptions}
- />
- <Chat.Screen
- name={MessageSearchRouteName}
- component={MessageSearch}
- options={messageSearchOptions}
- />
- <Chat.Screen
- name={ChangeRolesScreenRouteName}
- component={ChangeRolesScreen}
- options={changeRolesScreenOptions}
- />
- <Chat.Screen
- name={ThreadSettingsNotificationsRouteName}
- component={ThreadSettingsNotifications}
- options={threadSettingsNotificationsOptions}
- />
- </Chat.Navigator>
- <MessageStorePruner frozen={frozen} activeThreadID={activeThreadID} />
- <ThreadScreenPruner />
- <NUXHandler />
- {draftUpdater}
- </KeyboardAvoidingView>
+ <Chat.Navigator screenOptions={screenOptions}>
+ <Chat.Screen
+ name={ChatThreadListRouteName}
+ component={ChatThreadsComponent}
+ options={chatThreadListOptions}
+ />
+ <Chat.Screen
+ name={MessageListRouteName}
+ component={MessageListContainer}
+ options={messageListOptions}
+ />
+ <Chat.Screen
+ name={ComposeSubchannelRouteName}
+ component={ComposeSubchannel}
+ options={composeThreadOptions}
+ />
+ <Chat.Screen
+ name={ThreadSettingsRouteName}
+ component={ThreadSettings}
+ options={threadSettingsOptions}
+ />
+ <Chat.Screen
+ name={EmojiThreadAvatarCreationRouteName}
+ component={EmojiThreadAvatarCreation}
+ options={emojiAvatarCreationOptions}
+ />
+ <Chat.Screen
+ name={FullScreenThreadMediaGalleryRouteName}
+ component={FullScreenThreadMediaGallery}
+ options={fullScreenThreadMediaGalleryOptions}
+ />
+ <Chat.Screen
+ name={DeleteThreadRouteName}
+ component={DeleteThread}
+ options={deleteThreadOptions}
+ />
+ <Chat.Screen
+ name={PinnedMessagesScreenRouteName}
+ component={PinnedMessagesScreen}
+ options={pinnedMessagesScreenOptions}
+ />
+ <Chat.Screen
+ name={MessageSearchRouteName}
+ component={MessageSearch}
+ options={messageSearchOptions}
+ />
+ <Chat.Screen
+ name={ChangeRolesScreenRouteName}
+ component={ChangeRolesScreen}
+ options={changeRolesScreenOptions}
+ />
+ <Chat.Screen
+ name={ThreadSettingsNotificationsRouteName}
+ component={ThreadSettingsNotifications}
+ options={threadSettingsNotificationsOptions}
+ />
+ </Chat.Navigator>
+ <MessageStorePruner frozen={frozen} activeThreadID={activeThreadID} />
+ <ThreadScreenPruner />
+ <NUXHandler />
+ {draftUpdater}
</View>
);
}
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
@@ -5,6 +5,7 @@
import invariant from 'invariant';
import * as React from 'react';
import { Text, View } from 'react-native';
+import { KeyboardAvoidingView } from 'react-native-keyboard-controller';
import genesis from 'lib/facts/genesis.js';
import {
@@ -52,6 +53,7 @@
PinnedMessagesScreenRouteName,
ThreadSettingsRouteName,
} from '../navigation/route-names.js';
+import { useHeaderHeight } from '../navigation/use-header-height.react.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';
@@ -80,6 +82,9 @@
height: 0,
opacity: 0,
},
+ keyboardAvoidingView: {
+ flex: 1,
+ },
bannersContainer: {
zIndex: 2,
},
@@ -499,28 +504,36 @@
);
}
+ const headerHeight = useHeaderHeight();
+
return (
<MessageListContextProvider threadInfo={threadInfo}>
<View style={styles.bannersContainer}>
{pinnedCountBanner}
{relationshipPrompt}
</View>
- <MessageListContainer
- {...props}
- usernameInputText={usernameInputText}
- updateUsernameInput={updateUsernameInput}
- userInfoInputArray={userInfoInputArray}
- updateTagInput={updateTagInput}
- resolveToUser={resolveToUser}
- userSearchResults={userSearchResults}
- threadInfo={threadInfo}
- genesisThreadInfo={genesisThreadInfo}
- messageListData={messageListData}
- colors={colors}
- styles={styles}
- overlayContext={overlayContext}
- measureMessages={measureMessages}
- />
+ <KeyboardAvoidingView
+ behavior="translate-with-padding"
+ style={styles.keyboardAvoidingView}
+ keyboardVerticalOffset={headerHeight}
+ >
+ <MessageListContainer
+ {...props}
+ usernameInputText={usernameInputText}
+ updateUsernameInput={updateUsernameInput}
+ userInfoInputArray={userInfoInputArray}
+ updateTagInput={updateTagInput}
+ resolveToUser={resolveToUser}
+ userSearchResults={userSearchResults}
+ threadInfo={threadInfo}
+ genesisThreadInfo={genesisThreadInfo}
+ messageListData={messageListData}
+ colors={colors}
+ styles={styles}
+ overlayContext={overlayContext}
+ measureMessages={measureMessages}
+ />
+ </KeyboardAvoidingView>
</MessageListContextProvider>
);
});

File Metadata

Mime Type
text/plain
Expires
Sun, Dec 7, 2:01 AM (2 h, 10 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5832853
Default Alt Text
D15239.1765072866.diff (7 KB)

Event Timeline