forked from Ivasoft/mattermost-mobile
Update Dependencies and bug fixes (#7000)
* update dependencies * update dependencies * feedback review * update @mattermost/react-native-turbo-mailer
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {PasteInputRef} from '@mattermost/react-native-paste-input';
|
||||
import React, {useCallback, useRef} from 'react';
|
||||
import {LayoutChangeEvent, Platform, ScrollView, View} from 'react-native';
|
||||
import {Edge, SafeAreaView} from 'react-native-safe-area-context';
|
||||
@@ -16,6 +15,8 @@ import SendAction from '../send_action';
|
||||
import Typing from '../typing';
|
||||
import Uploads from '../uploads';
|
||||
|
||||
import type {PasteInputRef} from '@mattermost/react-native-paste-input';
|
||||
|
||||
type Props = {
|
||||
testID?: string;
|
||||
channelId: string;
|
||||
|
||||
@@ -7,7 +7,7 @@ import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react';
|
||||
import {IntlShape, useIntl} from 'react-intl';
|
||||
import {
|
||||
Alert, AppState, AppStateStatus, DeviceEventEmitter, EmitterSubscription, Keyboard,
|
||||
KeyboardTypeOptions, NativeSyntheticEvent, Platform, TextInputSelectionChangeEventData,
|
||||
NativeSyntheticEvent, Platform, TextInputSelectionChangeEventData,
|
||||
} from 'react-native';
|
||||
import HWKeyboardEvent from 'react-native-hw-keyboard-event';
|
||||
|
||||
@@ -20,9 +20,10 @@ import {useIsTablet} from '@hooks/device';
|
||||
import {t} from '@i18n';
|
||||
import NavigationStore from '@store/navigation_store';
|
||||
import {extractFileInfo} from '@utils/file';
|
||||
import {switchKeyboardForCodeBlocks} from '@utils/markdown';
|
||||
import {changeOpacity, makeStyleSheetFromTheme, getKeyboardAppearanceFromTheme} from '@utils/theme';
|
||||
|
||||
import type {AvailableScreens} from '@typings/screens/navigation';
|
||||
|
||||
type Props = {
|
||||
testID?: string;
|
||||
channelDisplayName?: string;
|
||||
@@ -125,7 +126,6 @@ export default function PostInput({
|
||||
const lastNativeValue = useRef('');
|
||||
const previousAppState = useRef(AppState.currentState);
|
||||
|
||||
const [keyboardType, setKeyboardType] = useState<KeyboardTypeOptions>('default');
|
||||
const [longMessageAlertShown, setLongMessageAlertShown] = useState(false);
|
||||
|
||||
const disableCopyAndPaste = managedConfig.copyAndPasteProtection === 'true';
|
||||
@@ -180,11 +180,6 @@ export default function PostInput({
|
||||
const handlePostDraftSelectionChanged = useCallback((event: NativeSyntheticEvent<TextInputSelectionChangeEventData> | null, fromHandleTextChange = false) => {
|
||||
const cp = fromHandleTextChange ? cursorPosition : event!.nativeEvent.selection.end;
|
||||
|
||||
if (Platform.OS === 'ios') {
|
||||
const newKeyboardType = switchKeyboardForCodeBlocks(value, cp);
|
||||
setKeyboardType(newKeyboardType);
|
||||
}
|
||||
|
||||
updateCursorPosition(cp);
|
||||
}, [updateCursorPosition, cursorPosition]);
|
||||
|
||||
@@ -194,11 +189,6 @@ export default function PostInput({
|
||||
|
||||
checkMessageLength(newValue);
|
||||
|
||||
// Workaround to avoid iOS emdash autocorrect in Code Blocks
|
||||
if (Platform.OS === 'ios') {
|
||||
handlePostDraftSelectionChanged(null, true);
|
||||
}
|
||||
|
||||
if (
|
||||
newValue &&
|
||||
lastTypingEventSent.current + timeBetweenUserTypingUpdatesMilliseconds < Date.now() &&
|
||||
@@ -211,7 +201,6 @@ export default function PostInput({
|
||||
}, [
|
||||
updateValue,
|
||||
checkMessageLength,
|
||||
handlePostDraftSelectionChanged,
|
||||
timeBetweenUserTypingUpdatesMilliseconds,
|
||||
channelId,
|
||||
rootId,
|
||||
@@ -228,7 +217,7 @@ export default function PostInput({
|
||||
|
||||
const handleHardwareEnterPress = useCallback((keyEvent: {pressedKey: string}) => {
|
||||
const topScreen = NavigationStore.getVisibleScreen();
|
||||
let sourceScreen = Screens.CHANNEL;
|
||||
let sourceScreen: AvailableScreens = Screens.CHANNEL;
|
||||
if (rootId) {
|
||||
sourceScreen = Screens.THREAD;
|
||||
} else if (isTablet) {
|
||||
@@ -307,24 +296,24 @@ export default function PostInput({
|
||||
return (
|
||||
<PasteableTextInput
|
||||
allowFontScaling={true}
|
||||
testID={testID}
|
||||
ref={inputRef}
|
||||
disableCopyPaste={disableCopyAndPaste}
|
||||
style={pasteInputStyle}
|
||||
disableFullscreenUI={true}
|
||||
keyboardAppearance={getKeyboardAppearanceFromTheme(theme)}
|
||||
multiline={true}
|
||||
onBlur={onBlur}
|
||||
onChangeText={handleTextChange}
|
||||
onFocus={onFocus}
|
||||
onPaste={onPaste}
|
||||
onSelectionChange={handlePostDraftSelectionChanged}
|
||||
placeholder={intl.formatMessage(getPlaceHolder(rootId), {channelDisplayName})}
|
||||
placeholderTextColor={changeOpacity(theme.centerChannelColor, 0.5)}
|
||||
multiline={true}
|
||||
onBlur={onBlur}
|
||||
onFocus={onFocus}
|
||||
blurOnSubmit={false}
|
||||
ref={inputRef}
|
||||
smartPunctuation='disable'
|
||||
submitBehavior='newline'
|
||||
style={pasteInputStyle}
|
||||
testID={testID}
|
||||
underlineColorAndroid='transparent'
|
||||
keyboardType={keyboardType}
|
||||
onPaste={onPaste}
|
||||
disableFullscreenUI={true}
|
||||
textContentType='none'
|
||||
keyboardAppearance={getKeyboardAppearanceFromTheme(theme)}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
import React from 'react';
|
||||
import {useIntl} from 'react-intl';
|
||||
import {View} from 'react-native';
|
||||
import {CameraOptions} from 'react-native-image-picker';
|
||||
|
||||
import FormattedText from '@components/formatted_text';
|
||||
import SlideUpPanelItem from '@components/slide_up_panel_item';
|
||||
@@ -14,6 +13,8 @@ import {dismissBottomSheet} from '@screens/navigation';
|
||||
import {makeStyleSheetFromTheme} from '@utils/theme';
|
||||
import {typography} from '@utils/typography';
|
||||
|
||||
import type {CameraOptions} from 'react-native-image-picker';
|
||||
|
||||
type Props = {
|
||||
onPress: (options: CameraOptions) => void;
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
import React, {useCallback} from 'react';
|
||||
import {useIntl} from 'react-intl';
|
||||
import {Alert, StyleSheet} from 'react-native';
|
||||
import {CameraOptions} from 'react-native-image-picker';
|
||||
import {useSafeAreaInsets} from 'react-native-safe-area-context';
|
||||
|
||||
import CompassIcon from '@components/compass_icon';
|
||||
@@ -22,6 +21,7 @@ import {changeOpacity} from '@utils/theme';
|
||||
import CameraType from './camera_type';
|
||||
|
||||
import type {QuickActionAttachmentProps} from '@typings/components/post_draft_quick_action';
|
||||
import type {CameraOptions} from 'react-native-image-picker';
|
||||
|
||||
const style = StyleSheet.create({
|
||||
icon: {
|
||||
|
||||
Reference in New Issue
Block a user