@100mslive/react-native-room-kit 1.0.5-beta.0 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/lib/commonjs/HMSRoomSetup.js +1 -0
  2. package/lib/commonjs/HMSRoomSetup.js.map +1 -1
  3. package/lib/commonjs/components/AvatarView.js +0 -1
  4. package/lib/commonjs/components/AvatarView.js.map +1 -1
  5. package/lib/commonjs/components/BottomSheet.js +13 -3
  6. package/lib/commonjs/components/BottomSheet.js.map +1 -1
  7. package/lib/commonjs/components/Chat/ChatBanner.js +10 -3
  8. package/lib/commonjs/components/Chat/ChatBanner.js.map +1 -1
  9. package/lib/commonjs/components/Chat/ChatFilterBottomSheetView.js +5 -1
  10. package/lib/commonjs/components/Chat/ChatFilterBottomSheetView.js.map +1 -1
  11. package/lib/commonjs/components/ChatAndParticipants/ChatAndParticipantsBottomSheet.js +4 -1
  12. package/lib/commonjs/components/ChatAndParticipants/ChatAndParticipantsBottomSheet.js.map +1 -1
  13. package/lib/commonjs/components/DefaultModal.js +9 -1
  14. package/lib/commonjs/components/DefaultModal.js.map +1 -1
  15. package/lib/commonjs/components/Footer.js +14 -4
  16. package/lib/commonjs/components/Footer.js.map +1 -1
  17. package/lib/commonjs/components/GridView.js +23 -9
  18. package/lib/commonjs/components/GridView.js.map +1 -1
  19. package/lib/commonjs/components/HMSHLSMessageList.js +5 -2
  20. package/lib/commonjs/components/HMSHLSMessageList.js.map +1 -1
  21. package/lib/commonjs/components/HMSKeyboardAvoidingView.android.js +42 -0
  22. package/lib/commonjs/components/HMSKeyboardAvoidingView.android.js.map +1 -0
  23. package/lib/commonjs/components/HMSManageAudioOutput.js +0 -1
  24. package/lib/commonjs/components/HMSManageAudioOutput.js.map +1 -1
  25. package/lib/commonjs/components/HMSNotifications.js +9 -1
  26. package/lib/commonjs/components/HMSNotifications.js.map +1 -1
  27. package/lib/commonjs/components/HMSRecordingIndicator.js +5 -4
  28. package/lib/commonjs/components/HMSRecordingIndicator.js.map +1 -1
  29. package/lib/commonjs/components/HMSTextInput.js +2 -3
  30. package/lib/commonjs/components/HMSTextInput.js.map +1 -1
  31. package/lib/commonjs/components/MeetingScreenContent.js +3 -1
  32. package/lib/commonjs/components/MeetingScreenContent.js.map +1 -1
  33. package/lib/commonjs/components/MiniView.js +12 -13
  34. package/lib/commonjs/components/MiniView.js.map +1 -1
  35. package/lib/commonjs/components/Participants/ParticipantsGroupHeader.js +1 -0
  36. package/lib/commonjs/components/Participants/ParticipantsGroupHeader.js.map +1 -1
  37. package/lib/commonjs/components/PeerVideoTile/PeerNameAndNetwork.js +0 -1
  38. package/lib/commonjs/components/PeerVideoTile/PeerNameAndNetwork.js.map +1 -1
  39. package/lib/commonjs/components/PeerVideoTile/VideoView.js +0 -1
  40. package/lib/commonjs/components/PeerVideoTile/VideoView.js.map +1 -1
  41. package/lib/commonjs/components/Preview.js +2 -1
  42. package/lib/commonjs/components/Preview.js.map +1 -1
  43. package/lib/commonjs/components/TilesContainer.js +3 -3
  44. package/lib/commonjs/components/TilesContainer.js.map +1 -1
  45. package/lib/commonjs/hooks-util.js +20 -3
  46. package/lib/commonjs/hooks-util.js.map +1 -1
  47. package/lib/commonjs/utils/theme.js +0 -1
  48. package/lib/commonjs/utils/theme.js.map +1 -1
  49. package/lib/commonjs/utils.js +0 -1
  50. package/lib/commonjs/utils.js.map +1 -1
  51. package/lib/module/HMSRoomSetup.js +2 -1
  52. package/lib/module/HMSRoomSetup.js.map +1 -1
  53. package/lib/module/components/AvatarView.js +0 -1
  54. package/lib/module/components/AvatarView.js.map +1 -1
  55. package/lib/module/components/BottomSheet.js +13 -3
  56. package/lib/module/components/BottomSheet.js.map +1 -1
  57. package/lib/module/components/Chat/ChatBanner.js +10 -3
  58. package/lib/module/components/Chat/ChatBanner.js.map +1 -1
  59. package/lib/module/components/Chat/ChatFilterBottomSheetView.js +5 -1
  60. package/lib/module/components/Chat/ChatFilterBottomSheetView.js.map +1 -1
  61. package/lib/module/components/ChatAndParticipants/ChatAndParticipantsBottomSheet.js +4 -1
  62. package/lib/module/components/ChatAndParticipants/ChatAndParticipantsBottomSheet.js.map +1 -1
  63. package/lib/module/components/DefaultModal.js +9 -1
  64. package/lib/module/components/DefaultModal.js.map +1 -1
  65. package/lib/module/components/Footer.js +14 -5
  66. package/lib/module/components/Footer.js.map +1 -1
  67. package/lib/module/components/GridView.js +24 -10
  68. package/lib/module/components/GridView.js.map +1 -1
  69. package/lib/module/components/HMSHLSMessageList.js +5 -2
  70. package/lib/module/components/HMSHLSMessageList.js.map +1 -1
  71. package/lib/module/components/HMSKeyboardAvoidingView.android.js +34 -0
  72. package/lib/module/components/HMSKeyboardAvoidingView.android.js.map +1 -0
  73. package/lib/module/components/HMSManageAudioOutput.js +0 -1
  74. package/lib/module/components/HMSManageAudioOutput.js.map +1 -1
  75. package/lib/module/components/HMSNotifications.js +9 -2
  76. package/lib/module/components/HMSNotifications.js.map +1 -1
  77. package/lib/module/components/HMSRecordingIndicator.js +5 -4
  78. package/lib/module/components/HMSRecordingIndicator.js.map +1 -1
  79. package/lib/module/components/HMSTextInput.js +2 -3
  80. package/lib/module/components/HMSTextInput.js.map +1 -1
  81. package/lib/module/components/LeaveRoomBottomSheet.js +1 -0
  82. package/lib/module/components/LeaveRoomBottomSheet.js.map +1 -1
  83. package/lib/module/components/MeetingScreenContent.js +3 -1
  84. package/lib/module/components/MeetingScreenContent.js.map +1 -1
  85. package/lib/module/components/MiniView.js +12 -13
  86. package/lib/module/components/MiniView.js.map +1 -1
  87. package/lib/module/components/Participants/ParticipantsGroupHeader.js +1 -0
  88. package/lib/module/components/Participants/ParticipantsGroupHeader.js.map +1 -1
  89. package/lib/module/components/PeerVideoTile/PeerNameAndNetwork.js +0 -1
  90. package/lib/module/components/PeerVideoTile/PeerNameAndNetwork.js.map +1 -1
  91. package/lib/module/components/PeerVideoTile/VideoView.js +0 -1
  92. package/lib/module/components/PeerVideoTile/VideoView.js.map +1 -1
  93. package/lib/module/components/Preview.js +2 -1
  94. package/lib/module/components/Preview.js.map +1 -1
  95. package/lib/module/components/TilesContainer.js +3 -3
  96. package/lib/module/components/TilesContainer.js.map +1 -1
  97. package/lib/module/hooks-util.js +20 -3
  98. package/lib/module/hooks-util.js.map +1 -1
  99. package/lib/module/utils/theme.js +0 -1
  100. package/lib/module/utils/theme.js.map +1 -1
  101. package/lib/module/utils.js +0 -1
  102. package/lib/module/utils.js.map +1 -1
  103. package/lib/typescript/HMSRoomSetup.d.ts.map +1 -1
  104. package/lib/typescript/components/BottomSheet.d.ts +1 -0
  105. package/lib/typescript/components/BottomSheet.d.ts.map +1 -1
  106. package/lib/typescript/components/Chat/ChatBanner.d.ts.map +1 -1
  107. package/lib/typescript/components/Chat/ChatFilterBottomSheetView.d.ts.map +1 -1
  108. package/lib/typescript/components/ChatAndParticipants/ChatAndParticipantsBottomSheet.d.ts.map +1 -1
  109. package/lib/typescript/components/DefaultModal.d.ts.map +1 -1
  110. package/lib/typescript/components/Footer.d.ts.map +1 -1
  111. package/lib/typescript/components/GridView.d.ts.map +1 -1
  112. package/lib/typescript/components/HMSHLSMessageList.d.ts.map +1 -1
  113. package/lib/typescript/components/HMSKeyboardAvoidingView.android.d.ts +9 -0
  114. package/lib/typescript/components/HMSKeyboardAvoidingView.android.d.ts.map +1 -0
  115. package/lib/typescript/components/HMSNotifications.d.ts.map +1 -1
  116. package/lib/typescript/components/HMSRecordingIndicator.d.ts.map +1 -1
  117. package/lib/typescript/components/HMSTextInput.d.ts.map +1 -1
  118. package/lib/typescript/components/MeetingScreenContent.d.ts.map +1 -1
  119. package/lib/typescript/components/MiniView.d.ts +2 -3
  120. package/lib/typescript/components/MiniView.d.ts.map +1 -1
  121. package/lib/typescript/components/TilesContainer.d.ts.map +1 -1
  122. package/lib/typescript/hooks-util.d.ts +1 -0
  123. package/lib/typescript/hooks-util.d.ts.map +1 -1
  124. package/package.json +2 -2
  125. package/src/HMSRoomSetup.tsx +3 -0
  126. package/src/components/BottomSheet.tsx +43 -6
  127. package/src/components/Chat/ChatBanner.tsx +9 -0
  128. package/src/components/Chat/ChatFilterBottomSheetView.tsx +7 -1
  129. package/src/components/ChatAndParticipants/ChatAndParticipantsBottomSheet.tsx +6 -1
  130. package/src/components/DefaultModal.tsx +12 -1
  131. package/src/components/Footer.tsx +17 -3
  132. package/src/components/GridView.tsx +27 -15
  133. package/src/components/HMSHLSMessageList.tsx +8 -2
  134. package/src/components/HMSKeyboardAvoidingView.android.tsx +49 -0
  135. package/src/components/HMSNotifications.tsx +11 -1
  136. package/src/components/HMSRecordingIndicator.tsx +11 -2
  137. package/src/components/HMSTextInput.tsx +1 -0
  138. package/src/components/MeetingScreenContent.tsx +3 -1
  139. package/src/components/MiniView.tsx +18 -15
  140. package/src/components/Preview.tsx +2 -2
  141. package/src/components/TilesContainer.tsx +9 -5
  142. package/src/hooks-util.ts +26 -0
@@ -11,6 +11,7 @@ import { HMSTerminalErrorNotification } from './HMSTerminalErrorNotification';
11
11
  import { HMSNotification } from './HMSNotification';
12
12
  import { AlertTriangleIcon } from '../Icons';
13
13
  import { HMSReconnectingNotification } from './HMSReconnectingNotification';
14
+ import { useIsLandscapeOrientation } from '../utils/dimension';
14
15
 
15
16
  export interface HMSNotificationsProps {}
16
17
 
@@ -23,6 +24,7 @@ export const HMSNotifications: React.FC<HMSNotificationsProps> = () => {
23
24
  const isLocalScreenShared = useSelector(
24
25
  (state: RootState) => state.hmsStates.isLocalScreenShared
25
26
  );
27
+ const isLandscapeOrientation = useIsLandscapeOrientation();
26
28
 
27
29
  // notifications is a stack, first will appear last
28
30
  const notifications = useSelector((state: RootState) => {
@@ -81,7 +83,9 @@ export const HMSNotifications: React.FC<HMSNotificationsProps> = () => {
81
83
  return (
82
84
  <View
83
85
  style={[
84
- styles.absoluteContainer,
86
+ isLandscapeOrientation
87
+ ? styles.absoluteLandscapeContainer
88
+ : styles.absoluteContainer,
85
89
  { paddingTop: (notifications.length - 1) * 16 },
86
90
  ]}
87
91
  >
@@ -165,6 +169,12 @@ const styles = StyleSheet.create({
165
169
  marginBottom: 8,
166
170
  width: '100%',
167
171
  },
172
+ absoluteLandscapeContainer: {
173
+ position: 'relative',
174
+ marginBottom: 8,
175
+ width: '60%',
176
+ alignSelf: 'center',
177
+ },
168
178
  notificationWrapper: {
169
179
  position: 'absolute',
170
180
  width: '100%',
@@ -5,15 +5,24 @@ import { ActivityIndicator, StyleSheet } from 'react-native';
5
5
  import type { RootState } from '../redux';
6
6
  import { RecordingIcon } from '../Icons';
7
7
  import { useHMSRoomColorPalette, useHMSRoomStyle } from '../hooks-util';
8
+ import { HMSRecordingState } from '@100mslive/react-native-hms';
8
9
 
9
10
  export const HMSRecordingIndicator = () => {
10
11
  const isRecordingOn = useSelector(
11
- (state: RootState) => !!state.hmsStates.room?.browserRecordingState?.running
12
+ (state: RootState) =>
13
+ !!state.hmsStates.room?.browserRecordingState?.running ||
14
+ !!state.hmsStates.room?.serverRecordingState?.running ||
15
+ !!state.hmsStates.room?.hlsRecordingState?.running
12
16
  );
13
17
  const startingOrStoppingRecording = useSelector(
14
18
  (state: RootState) =>
15
19
  state.app.startingOrStoppingRecording ||
16
- (state.hmsStates.room?.browserRecordingState.initialising ?? false)
20
+ state.hmsStates.room?.browserRecordingState.state ===
21
+ HMSRecordingState.STARTING ||
22
+ state.hmsStates.room?.serverRecordingState.state ===
23
+ HMSRecordingState.STARTING ||
24
+ state.hmsStates.room?.hlsRecordingState?.state ===
25
+ HMSRecordingState.STARTING
17
26
  );
18
27
 
19
28
  const { on_surface_high: onSurfaceHighColor } = useHMSRoomColorPalette();
@@ -130,6 +130,7 @@ export const HMSTextInput: React.FC<HMSTextInputProps> = ({
130
130
  selectionColor={resetProps.selectionColor ?? onSurfaceHighColor}
131
131
  onFocus={resetProps.onFocus ?? handleInputFocus}
132
132
  onBlur={resetProps.onBlur ?? handleInputBlur}
133
+ disableFullscreenUI={true}
133
134
  />
134
135
  );
135
136
 
@@ -20,6 +20,7 @@ import { HMSStatusBar } from './StatusBar';
20
20
  import { AnimatedFooter } from './AnimatedFooter';
21
21
  import { HLSFooter } from './HLSFooter';
22
22
  import { AnimatedHeader } from './AnimatedHeader';
23
+ import { useIsLandscapeOrientation } from '../utils/dimension';
23
24
  // import { ReconnectionView } from './ReconnectionView';
24
25
 
25
26
  interface MeetingScreenContentProps {
@@ -36,6 +37,7 @@ export const MeetingScreenContent: React.FC<MeetingScreenContentProps> = ({
36
37
  const isPipModeActive = useSelector(
37
38
  (state: RootState) => state.app.pipModeStatus === PipModes.ACTIVE
38
39
  );
40
+ const isLandscapeOrientation = useIsLandscapeOrientation();
39
41
 
40
42
  const toggleControls = useCallback(() => {
41
43
  'worklet';
@@ -90,7 +92,7 @@ export const MeetingScreenContent: React.FC<MeetingScreenContentProps> = ({
90
92
  <HMSStatusBar hidden={controlsHidden} barStyle={'light-content'} />
91
93
 
92
94
  <View style={styles.reconnectionWrapper}>
93
- {isPipModeActive ? null : (
95
+ {isPipModeActive || isLandscapeOrientation ? null : (
94
96
  <AnimatedHeader offset={offset}>
95
97
  <Header transparent={isHLSViewer} showControls={!isHLSViewer} />
96
98
  </AnimatedHeader>
@@ -1,8 +1,6 @@
1
1
  import * as React from 'react';
2
- import type { MutableRefObject } from 'react';
3
2
  import { useDispatch, useSelector } from 'react-redux';
4
3
  import { StyleSheet, View, LayoutAnimation } from 'react-native';
5
- import type { LayoutRectangle } from 'react-native';
6
4
  import { GestureDetector, Gesture } from 'react-native-gesture-handler';
7
5
  import Animated, {
8
6
  cancelAnimation,
@@ -20,6 +18,7 @@ import {
20
18
  import type { RootState } from '../redux';
21
19
  import { setInsetViewMinimized } from '../redux/actions';
22
20
  import { isPublishingAllowed } from '../hooks-util';
21
+ import { useIsLandscapeOrientation } from '../utils/dimension';
23
22
 
24
23
  const cornerOffset = {
25
24
  x: 8, // rightX
@@ -30,13 +29,16 @@ const cornerOffset = {
30
29
 
31
30
  export interface MiniViewProps
32
31
  extends Omit<PeerVideoTileViewProps, 'peerTrackNode'> {
33
- boundingBoxRef: MutableRefObject<LayoutRectangle | null>;
32
+ boundingBoxWidth: number | null;
33
+ boundingBoxHeight: number | null;
34
34
  }
35
35
 
36
36
  export const MiniView: React.FC<Omit<MiniViewProps, 'insetMode'>> = ({
37
- boundingBoxRef,
37
+ boundingBoxWidth,
38
+ boundingBoxHeight,
38
39
  onMoreOptionsPress,
39
40
  }) => {
41
+ const isLandscapeOrientation = useIsLandscapeOrientation();
40
42
  const isPressed = useSharedValue(false);
41
43
  const xOffset = useSharedValue(0);
42
44
  const yOffset = useSharedValue(0);
@@ -54,8 +56,8 @@ export const MiniView: React.FC<Omit<MiniViewProps, 'insetMode'>> = ({
54
56
  usePeerMinimizedViewDimensions();
55
57
 
56
58
  const size = {
57
- width: minimized ? minimizedViewWidth : 104,
58
- height: minimized ? minimizedViewHeigth : 186,
59
+ width: minimized ? minimizedViewWidth : (isLandscapeOrientation ? 178 : 104),
60
+ height: minimized ? minimizedViewHeigth : (isLandscapeOrientation ? 98 : 186),
59
61
  };
60
62
 
61
63
  const dimensionStyles = {
@@ -83,7 +85,8 @@ export const MiniView: React.FC<Omit<MiniViewProps, 'insetMode'>> = ({
83
85
  size.height,
84
86
  cornerOffset.x,
85
87
  cornerOffset.topY,
86
- boundingBoxRef.current
88
+ boundingBoxWidth,
89
+ boundingBoxHeight,
87
90
  );
88
91
 
89
92
  const finalX = snapPointX;
@@ -130,7 +133,7 @@ export const MiniView: React.FC<Omit<MiniViewProps, 'insetMode'>> = ({
130
133
  cancelAnimation(xOffset);
131
134
  cancelAnimation(yOffset);
132
135
  };
133
- }, [minimized]);
136
+ }, [boundingBoxWidth, boundingBoxHeight, minimized]);
134
137
 
135
138
  const handleMaximize = () => {
136
139
  LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut);
@@ -195,25 +198,25 @@ const getSnappingPoints = (
195
198
  compHeight: number,
196
199
  xCornerOffset: number,
197
200
  yCornerOffset: number,
198
- boundingBox: null | { width: number; height: number }
201
+ boundingBoxWidth: number | null,
202
+ boundingBoxHeight: number | null,
199
203
  ) => {
200
204
  'worklet';
201
- if (!boundingBox) {
205
+ if (!boundingBoxWidth || !boundingBoxHeight) {
202
206
  return {
203
207
  snapPointX: 0,
204
208
  snapPointY: 0,
205
209
  };
206
210
  }
207
- const { height, width } = boundingBox;
208
211
 
209
212
  return {
210
213
  snapPointX:
211
- Math.abs(currentValueX) + compWidth < width / 2
214
+ Math.abs(currentValueX) + compWidth < boundingBoxWidth / 2
212
215
  ? 0
213
- : -width + compWidth + xCornerOffset * 2,
216
+ : -boundingBoxWidth + compWidth + xCornerOffset * 2,
214
217
  snapPointY:
215
- Math.abs(currentValueY) + compHeight < height / 2
218
+ Math.abs(currentValueY) + compHeight < boundingBoxHeight / 2
216
219
  ? 0
217
- : -height + compHeight + yCornerOffset * 2,
220
+ : -boundingBoxHeight + compHeight + yCornerOffset * 2,
218
221
  };
219
222
  };
@@ -114,7 +114,7 @@ export const Preview = ({
114
114
  <BackButton />
115
115
  </SafeAreaView>
116
116
 
117
- <View style={styles.footerWrapper}>
117
+ <SafeAreaView edges={['left', 'right']} style={styles.footerWrapper}>
118
118
  <HMSPreviewNetworkQuality />
119
119
 
120
120
  <HMSKeyboardAvoidingView
@@ -145,7 +145,7 @@ export const Preview = ({
145
145
  />
146
146
  </View>
147
147
  </HMSKeyboardAvoidingView>
148
- </View>
148
+ </SafeAreaView>
149
149
  </View>
150
150
  </TouchableWithoutFeedback>
151
151
  );
@@ -47,9 +47,13 @@ const _TilesContainer: React.FC<TilesContainerProps> = ({
47
47
  screenshareTilesAvailable && peerTrackNodes.length === 1
48
48
  ? 'center'
49
49
  : growableTileLayout
50
- ? 'space-between'
51
- : 'center',
52
- flexDirection: screenshareTilesAvailable ? 'row' : 'column',
50
+ ? 'space-between'
51
+ : 'center',
52
+ flexDirection: screenshareTilesAvailable
53
+ ? 'row'
54
+ : isLandscapeOrientation
55
+ ? 'row'
56
+ : 'column',
53
57
  },
54
58
  { width: Dimensions.get('window').width - left - right },
55
59
  ]}
@@ -133,8 +137,8 @@ const fourTileStyle = { width: '49.5%', height: '100%' }; // Grid Layout when Wi
133
137
  const fiveAndSixTileStyle = { width: '49.5%', aspectRatio: 1 }; // Grid Layout when width and Height as fixed aspectRatio
134
138
 
135
139
  const oneTileStyleLandscape = { width: '100%', height: '100%' };
136
- const twoTileStyleLandscape = { width: '50%', height: '100%' };
137
- const threeTileStyleLandscape = { width: '33.3333%', height: '100%' };
140
+ const twoTileStyleLandscape = { width: '49.7222%', height: '100%' };
141
+ const threeTileStyleLandscape = { width: '33%', height: '100%' };
138
142
  const fourTileStyleLandscape = { width: '50%', height: '50%' };
139
143
 
140
144
  function computeTileWidthAndHeight(
package/src/hooks-util.ts CHANGED
@@ -20,9 +20,12 @@ import {
20
20
  HMSMessageRecipient,
21
21
  useHMSHLSPlayerResolution,
22
22
  useHmsViewsResolutionsState,
23
+ setSoftInputMode,
24
+ getSoftInputMode,
23
25
  // useHMSPeerUpdates,
24
26
  } from '@100mslive/react-native-hms';
25
27
  import type { Chat as ChatConfig } from '@100mslive/types-prebuilt/elements/chat';
28
+ import { SoftInputModes } from '@100mslive/react-native-hms';
26
29
  import type {
27
30
  HMSPIPConfig,
28
31
  HMSRole,
@@ -2431,3 +2434,26 @@ export const useStartRecording = () => {
2431
2434
  startRecording,
2432
2435
  };
2433
2436
  };
2437
+
2438
+ export const useAndroidSoftInputAdjustResize = () => {
2439
+ const currentSoftInputRef = useRef<null | SoftInputModes>(null);
2440
+
2441
+ useEffect(() => {
2442
+ if (Platform.OS !== 'android') {
2443
+ return;
2444
+ }
2445
+ const currentSoftInputMode = getSoftInputMode();
2446
+
2447
+ if (currentSoftInputMode !== SoftInputModes.SOFT_INPUT_ADJUST_RESIZE) {
2448
+ currentSoftInputRef.current = currentSoftInputMode;
2449
+
2450
+ setSoftInputMode(SoftInputModes.SOFT_INPUT_ADJUST_RESIZE);
2451
+
2452
+ return () => {
2453
+ if (currentSoftInputRef.current !== null) {
2454
+ setSoftInputMode(currentSoftInputRef.current);
2455
+ }
2456
+ }
2457
+ }
2458
+ }, []);
2459
+ };