forked from Ivasoft/mattermost-mobile
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6efa04cd19 | ||
|
|
725225d77e | ||
|
|
a31f2acd78 | ||
|
|
1c4aeece20 | ||
|
|
de0e7ca142 |
@@ -132,8 +132,8 @@ android {
|
||||
minSdkVersion rootProject.ext.minSdkVersion
|
||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||
missingDimensionStrategy "RNNotifications.reactNativeVersion", "reactNative60"
|
||||
versionCode 337
|
||||
versionName "1.38.0"
|
||||
versionCode 338
|
||||
versionName "1.38.1"
|
||||
multiDexEnabled = true
|
||||
testBuildType System.getProperty('testBuildType', 'debug')
|
||||
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
|
||||
|
||||
@@ -15,7 +15,7 @@ import Store from '@store/store';
|
||||
|
||||
Navigation.setDefaultOptions({
|
||||
layout: {
|
||||
orientation: [DeviceTypes.IS_TABLET ? undefined : 'portrait'],
|
||||
orientation: [DeviceTypes.IS_TABLET ? 'all' : 'portrait'],
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
@@ -17,6 +17,4 @@ function mapStateToProps(state) {
|
||||
};
|
||||
}
|
||||
|
||||
export const AUTOCOMPLETE_MAX_HEIGHT = 200;
|
||||
|
||||
export default connect(mapStateToProps, null, null, {forwardRef: true})(Autocomplete);
|
||||
|
||||
@@ -42,7 +42,7 @@ export default class ChannelLoader extends PureComponent {
|
||||
style: CustomPropTypes.Style,
|
||||
theme: PropTypes.object.isRequired,
|
||||
height: PropTypes.number,
|
||||
retryLoad: PropTypes.func.isRequired,
|
||||
retryLoad: PropTypes.func,
|
||||
};
|
||||
|
||||
constructor(props) {
|
||||
@@ -75,8 +75,10 @@ export default class ChannelLoader extends PureComponent {
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
this.stillLoadingTimeout = setTimeout(this.showIndicator, 10000);
|
||||
this.retryLoadInterval = setInterval(this.props.retryLoad, 10000);
|
||||
if (this.props.retryLoad) {
|
||||
this.stillLoadingTimeout = setTimeout(this.showIndicator, 10000);
|
||||
this.retryLoadInterval = setInterval(this.props.retryLoad, 10000);
|
||||
}
|
||||
}
|
||||
|
||||
componentWillUnmount() {
|
||||
|
||||
@@ -14,7 +14,6 @@ describe('ChannelLoader', () => {
|
||||
const baseProps = {
|
||||
channelIsLoading: true,
|
||||
theme: Preferences.THEMES.default,
|
||||
retryLoad: jest.fn(),
|
||||
};
|
||||
|
||||
test('should match snapshot', () => {
|
||||
@@ -23,15 +22,26 @@ describe('ChannelLoader', () => {
|
||||
});
|
||||
|
||||
test('should call setTimeout and setInterval for showIndicator and retryLoad on mount', () => {
|
||||
const wrapper = shallow(<ChannelLoader {...baseProps}/>);
|
||||
const instance = wrapper.instance();
|
||||
shallow(<ChannelLoader {...baseProps}/>);
|
||||
expect(setTimeout).not.toHaveBeenCalled();
|
||||
expect(setInterval).not.toHaveBeenCalled();
|
||||
|
||||
const props = {
|
||||
...baseProps,
|
||||
retryLoad: jest.fn(),
|
||||
};
|
||||
const wrapper = shallow(<ChannelLoader {...props}/>);
|
||||
const instance = wrapper.instance();
|
||||
expect(setTimeout).toHaveBeenCalledWith(instance.showIndicator, 10000);
|
||||
expect(setInterval).toHaveBeenCalledWith(baseProps.retryLoad, 10000);
|
||||
expect(setInterval).toHaveBeenCalledWith(props.retryLoad, 10000);
|
||||
});
|
||||
|
||||
test('should clear timer and interval on unmount', () => {
|
||||
const wrapper = shallow(<ChannelLoader {...baseProps}/>);
|
||||
const props = {
|
||||
...baseProps,
|
||||
retryLoad: jest.fn(),
|
||||
};
|
||||
const wrapper = shallow(<ChannelLoader {...props}/>);
|
||||
const instance = wrapper.instance();
|
||||
instance.componentWillUnmount();
|
||||
|
||||
|
||||
@@ -13,12 +13,13 @@ import {SafeAreaView} from 'react-native-safe-area-context';
|
||||
|
||||
import {General} from '@mm-redux/constants';
|
||||
|
||||
import Autocomplete, {AUTOCOMPLETE_MAX_HEIGHT} from 'app/components/autocomplete';
|
||||
import Autocomplete from 'app/components/autocomplete';
|
||||
import ErrorText from 'app/components/error_text';
|
||||
import FormattedText from 'app/components/formatted_text';
|
||||
import Loading from 'app/components/loading';
|
||||
import StatusBar from 'app/components/status_bar';
|
||||
import TextInputWithLocalizedPlaceholder from 'app/components/text_input_with_localized_placeholder';
|
||||
import DEVICE from '@constants/device';
|
||||
|
||||
import {
|
||||
changeOpacity,
|
||||
@@ -370,7 +371,7 @@ export default class EditChannelInfo extends PureComponent {
|
||||
<View style={[style.autocompleteContainer, bottomStyle]}>
|
||||
<Autocomplete
|
||||
cursorPosition={header.length}
|
||||
maxHeight={AUTOCOMPLETE_MAX_HEIGHT}
|
||||
maxHeight={DEVICE.AUTOCOMPLETE_MAX_HEIGHT}
|
||||
onChangeText={this.onHeaderChangeText}
|
||||
value={header}
|
||||
nestedScrollEnabled={true}
|
||||
|
||||
@@ -14,6 +14,7 @@ import QuickActions from '@components/post_draft/quick_actions';
|
||||
import SendAction from '@components/post_draft/send_action';
|
||||
import Typing from '@components/post_draft/typing';
|
||||
import Uploads from '@components/post_draft/uploads';
|
||||
import DEVICE from '@constants/device';
|
||||
import {CHANNEL_POST_TEXTBOX_CURSOR_CHANGE, CHANNEL_POST_TEXTBOX_VALUE_CHANGE, IS_REACTION_REGEX} from '@constants/post_draft';
|
||||
import {NOTIFY_ALL_MEMBERS} from '@constants/view';
|
||||
import EventEmitter from '@mm-redux/utils/event_emitter';
|
||||
@@ -23,7 +24,6 @@ import {confirmOutOfOfficeDisabled} from '@utils/status';
|
||||
import {changeOpacity, makeStyleSheetFromTheme} from '@utils/theme';
|
||||
|
||||
const AUTOCOMPLETE_MARGIN = 20;
|
||||
const AUTOCOMPLETE_MAX_HEIGHT = 200;
|
||||
const HW_SHIFT_ENTER_TEXT = Platform.OS === 'ios' ? '\n' : '';
|
||||
const HW_EVENT_IN_SCREEN = ['Channel', 'Thread'];
|
||||
|
||||
@@ -417,6 +417,17 @@ export default class DraftInput extends PureComponent {
|
||||
theme={theme}
|
||||
registerTypingAnimation={registerTypingAnimation}
|
||||
/>
|
||||
{Platform.OS === 'android' &&
|
||||
<Autocomplete
|
||||
cursorPositionEvent={cursorPositionEvent}
|
||||
maxHeight={Math.min(this.state.top - AUTOCOMPLETE_MARGIN, DEVICE.AUTOCOMPLETE_MAX_HEIGHT)}
|
||||
onChangeText={this.handleInputQuickAction}
|
||||
valueEvent={valueEvent}
|
||||
rootId={rootId}
|
||||
channelId={channelId}
|
||||
offsetY={0}
|
||||
/>
|
||||
}
|
||||
<SafeAreaView
|
||||
edges={['left', 'right']}
|
||||
onLayout={this.handleLayout}
|
||||
@@ -469,16 +480,6 @@ export default class DraftInput extends PureComponent {
|
||||
</View>
|
||||
</ScrollView>
|
||||
</SafeAreaView>
|
||||
{Platform.OS === 'android' &&
|
||||
<Autocomplete
|
||||
cursorPositionEvent={cursorPositionEvent}
|
||||
maxHeight={Math.min(this.state.top - AUTOCOMPLETE_MARGIN, AUTOCOMPLETE_MAX_HEIGHT)}
|
||||
onChangeText={this.handleInputQuickAction}
|
||||
valueEvent={valueEvent}
|
||||
rootId={rootId}
|
||||
channelId={channelId}
|
||||
/>
|
||||
}
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ import {intlShape} from 'react-intl';
|
||||
|
||||
import PasteableTextInput from '@components/pasteable_text_input';
|
||||
import {NavigationTypes} from '@constants';
|
||||
import DEVICE from '@constants/device';
|
||||
import {INSERT_TO_COMMENT, INSERT_TO_DRAFT} from '@constants/post_draft';
|
||||
import EventEmitter from '@mm-redux/utils/event_emitter';
|
||||
import {t} from '@utils/i18n';
|
||||
@@ -270,7 +271,7 @@ export default class PostInput extends PureComponent {
|
||||
const {channelDisplayName, isLandscape, theme} = this.props;
|
||||
const style = getStyleSheet(theme);
|
||||
const placeholder = this.getPlaceHolder();
|
||||
let maxHeight = 150;
|
||||
let maxHeight = DEVICE.POST_INPUT_MAX_HEIGHT;
|
||||
|
||||
if (isLandscape) {
|
||||
maxHeight = 88;
|
||||
|
||||
@@ -14,13 +14,19 @@ const deviceTypes = keyMirror({
|
||||
STATUSBAR_HEIGHT_CHANGED: null,
|
||||
});
|
||||
|
||||
const isPhoneWithInsets = Platform.OS === 'ios' && DeviceInfo.hasNotch();
|
||||
const isTablet = DeviceInfo.isTablet();
|
||||
const isIPhone12Mini = DeviceInfo.getModel() === 'iPhone 12 mini';
|
||||
|
||||
export default {
|
||||
...deviceTypes,
|
||||
DOCUMENTS_PATH: `${RNFetchBlobFS.dirs.CacheDir}/Documents`,
|
||||
IMAGES_PATH: `${RNFetchBlobFS.dirs.CacheDir}/Images`,
|
||||
IS_IPHONE_WITH_INSETS: Platform.OS === 'ios' && DeviceInfo.hasNotch(),
|
||||
IS_IPHONE_WITH_INSETS: isPhoneWithInsets,
|
||||
IS_TABLET: DeviceInfo.isTablet(),
|
||||
VIDEOS_PATH: `${RNFetchBlobFS.dirs.CacheDir}/Videos`,
|
||||
PERMANENT_SIDEBAR_SETTINGS: '@PERMANENT_SIDEBAR_SETTINGS',
|
||||
TABLET_WIDTH: 250,
|
||||
AUTOCOMPLETE_MAX_HEIGHT: (isPhoneWithInsets && !isIPhone12Mini) || isTablet ? 200 : 145,
|
||||
POST_INPUT_MAX_HEIGHT: (isPhoneWithInsets && !isIPhone12Mini) || isTablet ? 150 : 88,
|
||||
};
|
||||
|
||||
@@ -7,13 +7,14 @@ import {SafeAreaView} from 'react-native-safe-area-context';
|
||||
|
||||
import LocalConfig from '@assets/config';
|
||||
import AnnouncementBanner from 'app/components/announcement_banner';
|
||||
import Autocomplete, {AUTOCOMPLETE_MAX_HEIGHT} from '@components/autocomplete';
|
||||
import Autocomplete from '@components/autocomplete';
|
||||
import InteractiveDialogController from '@components/interactive_dialog_controller';
|
||||
import NetworkIndicator from '@components/network_indicator';
|
||||
import PostDraft from '@components/post_draft';
|
||||
import MainSidebar from '@components/sidebars/main';
|
||||
import SettingsSidebar from '@components/sidebars/settings';
|
||||
import StatusBar from '@components/status_bar';
|
||||
import DEVICE from '@constants/device';
|
||||
import {ACCESSORIES_CONTAINER_NATIVE_ID, CHANNEL_POST_TEXTBOX_CURSOR_CHANGE, CHANNEL_POST_TEXTBOX_VALUE_CHANGE} from '@constants/post_draft';
|
||||
import {makeStyleSheetFromTheme} from '@utils/theme';
|
||||
|
||||
@@ -98,6 +99,16 @@ export default class ChannelIOS extends ChannelBase {
|
||||
{component}
|
||||
</SafeAreaView>
|
||||
{indicators}
|
||||
<View nativeID={ACCESSORIES_CONTAINER_NATIVE_ID}>
|
||||
<Autocomplete
|
||||
maxHeight={DEVICE.AUTOCOMPLETE_MAX_HEIGHT}
|
||||
onChangeText={this.handleAutoComplete}
|
||||
cursorPositionEvent={CHANNEL_POST_TEXTBOX_CURSOR_CHANGE}
|
||||
valueEvent={CHANNEL_POST_TEXTBOX_VALUE_CHANGE}
|
||||
channelId={currentChannelId}
|
||||
offsetY={0}
|
||||
/>
|
||||
</View>
|
||||
{renderDraftArea &&
|
||||
<PostDraft
|
||||
accessoriesContainerID={ACCESSORIES_CONTAINER_NATIVE_ID}
|
||||
@@ -109,15 +120,6 @@ export default class ChannelIOS extends ChannelBase {
|
||||
valueEvent={CHANNEL_POST_TEXTBOX_VALUE_CHANGE}
|
||||
/>
|
||||
}
|
||||
<View nativeID={ACCESSORIES_CONTAINER_NATIVE_ID}>
|
||||
<Autocomplete
|
||||
maxHeight={AUTOCOMPLETE_MAX_HEIGHT}
|
||||
onChangeText={this.handleAutoComplete}
|
||||
cursorPositionEvent={CHANNEL_POST_TEXTBOX_CURSOR_CHANGE}
|
||||
valueEvent={CHANNEL_POST_TEXTBOX_VALUE_CHANGE}
|
||||
channelId={currentChannelId}
|
||||
/>
|
||||
</View>
|
||||
</>
|
||||
);
|
||||
|
||||
|
||||
@@ -12,11 +12,12 @@ import {Navigation} from 'react-native-navigation';
|
||||
import {KeyboardTrackingView} from 'react-native-keyboard-tracking-view';
|
||||
import {SafeAreaView} from 'react-native-safe-area-context';
|
||||
|
||||
import Autocomplete, {AUTOCOMPLETE_MAX_HEIGHT} from 'app/components/autocomplete';
|
||||
import Autocomplete from 'app/components/autocomplete';
|
||||
import ErrorText from 'app/components/error_text';
|
||||
import Loading from 'app/components/loading';
|
||||
import StatusBar from 'app/components/status_bar';
|
||||
import TextInputWithLocalizedPlaceholder from 'app/components/text_input_with_localized_placeholder';
|
||||
import DEVICE from '@constants/device';
|
||||
import {switchKeyboardForCodeBlocks} from 'app/utils/markdown';
|
||||
import {
|
||||
changeOpacity,
|
||||
@@ -280,7 +281,7 @@ export default class EditPost extends PureComponent {
|
||||
<KeyboardTrackingView style={autocompleteStyles}>
|
||||
<Autocomplete
|
||||
cursorPosition={this.state.cursorPosition}
|
||||
maxHeight={AUTOCOMPLETE_MAX_HEIGHT}
|
||||
maxHeight={DEVICE.AUTOCOMPLETE_MAX_HEIGHT}
|
||||
onChangeText={this.onPostChangeText}
|
||||
value={message}
|
||||
nestedScrollEnabled={true}
|
||||
|
||||
@@ -50,6 +50,19 @@ exports[`thread should match snapshot, has root post 1`] = `
|
||||
</ForwardRef(AnimatedComponentWrapper)>
|
||||
</React.Fragment>
|
||||
</Connect(SafeArea)>
|
||||
<View
|
||||
nativeID="threadAccessoriesContainer"
|
||||
>
|
||||
<Connect(Autocomplete)
|
||||
channelId="channel_id"
|
||||
cursorPositionEvent="onThreadTextBoxCursorChange"
|
||||
maxHeight={200}
|
||||
offsetY={0}
|
||||
onChangeText={[Function]}
|
||||
rootId="root_id"
|
||||
valueEvent="onThreadTextBoxValueChange"
|
||||
/>
|
||||
</View>
|
||||
<Connect(PostDraft)
|
||||
accessoriesContainerID="threadAccessoriesContainer"
|
||||
channelId="channel_id"
|
||||
@@ -60,18 +73,6 @@ exports[`thread should match snapshot, has root post 1`] = `
|
||||
scrollViewNativeID="threadPostList"
|
||||
valueEvent="onThreadTextBoxValueChange"
|
||||
/>
|
||||
<View
|
||||
nativeID="threadAccessoriesContainer"
|
||||
>
|
||||
<Connect(Autocomplete)
|
||||
channelId="channel_id"
|
||||
cursorPositionEvent="onThreadTextBoxCursorChange"
|
||||
maxHeight={200}
|
||||
onChangeText={[Function]}
|
||||
rootId="root_id"
|
||||
valueEvent="onThreadTextBoxValueChange"
|
||||
/>
|
||||
</View>
|
||||
</React.Fragment>
|
||||
`;
|
||||
|
||||
@@ -103,6 +104,7 @@ exports[`thread should match snapshot, no root post, loading 1`] = `
|
||||
channelId="channel_id"
|
||||
cursorPositionEvent="onThreadTextBoxCursorChange"
|
||||
maxHeight={200}
|
||||
offsetY={0}
|
||||
onChangeText={[Function]}
|
||||
rootId="root_id"
|
||||
valueEvent="onThreadTextBoxValueChange"
|
||||
@@ -185,6 +187,7 @@ exports[`thread should match snapshot, render footer 3`] = `
|
||||
channelId="channel_id"
|
||||
cursorPositionEvent="onThreadTextBoxCursorChange"
|
||||
maxHeight={200}
|
||||
offsetY={0}
|
||||
onChangeText={[Function]}
|
||||
rootId="root_id"
|
||||
valueEvent="onThreadTextBoxValueChange"
|
||||
|
||||
@@ -4,12 +4,13 @@
|
||||
import React from 'react';
|
||||
import {Animated, View} from 'react-native';
|
||||
|
||||
import Autocomplete, {AUTOCOMPLETE_MAX_HEIGHT} from '@components/autocomplete';
|
||||
import Autocomplete from '@components/autocomplete';
|
||||
import Loading from '@components/loading';
|
||||
import PostList from '@components/post_list';
|
||||
import PostDraft from '@components/post_draft';
|
||||
import SafeAreaView from '@components/safe_area_view';
|
||||
import StatusBar from '@components/status_bar';
|
||||
import DEVICE from '@constants/device';
|
||||
import {THREAD} from '@constants/screen';
|
||||
import {getLastPostIndex} from '@mm-redux/utils/post_list';
|
||||
import {changeOpacity, makeStyleSheetFromTheme} from '@utils/theme';
|
||||
@@ -90,17 +91,18 @@ export default class ThreadIOS extends ThreadBase {
|
||||
<StatusBar/>
|
||||
{content}
|
||||
</SafeAreaView>
|
||||
{postDraft}
|
||||
<View nativeID={ACCESSORIES_CONTAINER_NATIVE_ID}>
|
||||
<Autocomplete
|
||||
maxHeight={AUTOCOMPLETE_MAX_HEIGHT}
|
||||
maxHeight={DEVICE.AUTOCOMPLETE_MAX_HEIGHT}
|
||||
onChangeText={this.handleAutoComplete}
|
||||
cursorPositionEvent={THREAD_POST_TEXTBOX_CURSOR_CHANGE}
|
||||
valueEvent={THREAD_POST_TEXTBOX_VALUE_CHANGE}
|
||||
rootId={rootId}
|
||||
channelId={channelId}
|
||||
offsetY={0}
|
||||
/>
|
||||
</View>
|
||||
{postDraft}
|
||||
</React.Fragment>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
CFPropertyList (3.0.2)
|
||||
CFPropertyList (3.0.3)
|
||||
addressable (2.7.0)
|
||||
public_suffix (>= 2.0.2, < 5.0)
|
||||
atomos (0.1.3)
|
||||
aws-eventstream (1.1.0)
|
||||
aws-partitions (1.393.0)
|
||||
aws-sdk-core (3.109.2)
|
||||
aws-partitions (1.410.0)
|
||||
aws-sdk-core (3.110.0)
|
||||
aws-eventstream (~> 1, >= 1.0.2)
|
||||
aws-partitions (~> 1, >= 1.239.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
jmespath (~> 1.0)
|
||||
aws-sdk-kms (1.39.0)
|
||||
aws-sdk-kms (1.40.0)
|
||||
aws-sdk-core (~> 3, >= 3.109.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
aws-sdk-s3 (1.84.1)
|
||||
aws-sdk-s3 (1.86.2)
|
||||
aws-sdk-core (~> 3, >= 3.109.0)
|
||||
aws-sdk-kms (~> 1)
|
||||
aws-sdk-kms (~> 1.26)
|
||||
aws-sigv4 (~> 1.1)
|
||||
aws-sigv4 (1.2.2)
|
||||
aws-eventstream (~> 1, >= 1.0.2)
|
||||
@@ -29,13 +29,13 @@ GEM
|
||||
highline (~> 1.7.2)
|
||||
declarative (0.0.20)
|
||||
declarative-option (0.1.0)
|
||||
digest-crc (0.6.1)
|
||||
rake (~> 13.0)
|
||||
digest-crc (0.6.2)
|
||||
rake (~> 12.0)
|
||||
domain_name (0.5.20190701)
|
||||
unf (>= 0.0.5, < 1.0.0)
|
||||
dotenv (2.7.6)
|
||||
emoji_regex (3.2.1)
|
||||
excon (0.78.0)
|
||||
excon (0.78.1)
|
||||
faraday (1.1.0)
|
||||
multipart-post (>= 1.2, < 3)
|
||||
ruby2_keywords
|
||||
@@ -45,7 +45,7 @@ GEM
|
||||
faraday_middleware (1.0.0)
|
||||
faraday (~> 1.0)
|
||||
fastimage (2.2.0)
|
||||
fastlane (2.167.0)
|
||||
fastlane (2.170.0)
|
||||
CFPropertyList (>= 2.3, < 4.0.0)
|
||||
addressable (>= 2.3, < 3.0.0)
|
||||
aws-sdk-s3 (~> 1.0)
|
||||
@@ -101,7 +101,7 @@ GEM
|
||||
google-cloud-env (1.4.0)
|
||||
faraday (>= 0.17.3, < 2.0)
|
||||
google-cloud-errors (1.0.1)
|
||||
google-cloud-storage (1.29.1)
|
||||
google-cloud-storage (1.29.2)
|
||||
addressable (~> 2.5)
|
||||
digest-crc (~> 0.4)
|
||||
google-api-client (~> 0.33)
|
||||
@@ -120,7 +120,7 @@ GEM
|
||||
domain_name (~> 0.5)
|
||||
httpclient (2.8.3)
|
||||
jmespath (1.4.0)
|
||||
json (2.3.1)
|
||||
json (2.4.1)
|
||||
jwt (2.2.2)
|
||||
memoist (0.16.2)
|
||||
mini_magick (4.11.0)
|
||||
@@ -135,7 +135,7 @@ GEM
|
||||
os (1.1.1)
|
||||
plist (3.5.0)
|
||||
public_suffix (4.0.6)
|
||||
rake (13.0.1)
|
||||
rake (12.3.3)
|
||||
representable (3.0.4)
|
||||
declarative (< 0.1.0)
|
||||
declarative-option (< 0.2.0)
|
||||
|
||||
@@ -911,7 +911,7 @@
|
||||
CODE_SIGN_ENTITLEMENTS = Mattermost/Mattermost.entitlements;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CURRENT_PROJECT_VERSION = 337;
|
||||
CURRENT_PROJECT_VERSION = 338;
|
||||
DEAD_CODE_STRIPPING = NO;
|
||||
DEVELOPMENT_TEAM = UQ8HT4Q2XM;
|
||||
ENABLE_BITCODE = NO;
|
||||
@@ -953,7 +953,7 @@
|
||||
CODE_SIGN_ENTITLEMENTS = Mattermost/Mattermost.entitlements;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CURRENT_PROJECT_VERSION = 337;
|
||||
CURRENT_PROJECT_VERSION = 338;
|
||||
DEAD_CODE_STRIPPING = NO;
|
||||
DEVELOPMENT_TEAM = UQ8HT4Q2XM;
|
||||
ENABLE_BITCODE = NO;
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.38.0</string>
|
||||
<string>1.38.1</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleURLTypes</key>
|
||||
@@ -36,7 +36,7 @@
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>337</string>
|
||||
<string>338</string>
|
||||
<key>ITSAppUsesNonExemptEncryption</key>
|
||||
<false/>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
|
||||
@@ -19,9 +19,9 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>XPC!</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.38.0</string>
|
||||
<string>1.38.1</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>337</string>
|
||||
<string>338</string>
|
||||
<key>NSAppTransportSecurity</key>
|
||||
<dict>
|
||||
<key>NSAllowsArbitraryLoads</key>
|
||||
|
||||
@@ -19,9 +19,9 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>XPC!</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.38.0</string>
|
||||
<string>1.38.1</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>337</string>
|
||||
<string>338</string>
|
||||
<key>NSExtension</key>
|
||||
<dict>
|
||||
<key>NSExtensionPointIdentifier</key>
|
||||
|
||||
@@ -359,7 +359,7 @@ PODS:
|
||||
- React
|
||||
- RNVectorIcons (7.1.0):
|
||||
- React
|
||||
- Rudder (1.0.9)
|
||||
- Rudder (1.0.10)
|
||||
- SDWebImage (5.9.4):
|
||||
- SDWebImage/Core (= 5.9.4)
|
||||
- SDWebImage/Core (5.9.4)
|
||||
@@ -672,7 +672,7 @@ SPEC CHECKSUMS:
|
||||
RNShare: 106a76243ac90f43ddb9028dcb78ade406b8adff
|
||||
RNSVG: ce9d996113475209013317e48b05c21ee988d42e
|
||||
RNVectorIcons: bc69e6a278b14842063605de32bec61f0b251a59
|
||||
Rudder: 90ed801a09c73017184e6fc901370be1754eb182
|
||||
Rudder: 05e61fe2e59bcd65931f4a47d21011e15adf7159
|
||||
SDWebImage: b69257f4ab14e9b6a2ef53e910fdf914d8f757c1
|
||||
SDWebImageWebPCoder: d0dac55073088d24b2ac1b191a71a8f8d0adac21
|
||||
Sentry: e2c691627ae1dc0029acebbd1b0b4af4df12af73
|
||||
|
||||
8
package-lock.json
generated
8
package-lock.json
generated
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "mattermost-mobile",
|
||||
"version": "1.38.0",
|
||||
"version": "1.38.1",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
@@ -6130,9 +6130,9 @@
|
||||
}
|
||||
},
|
||||
"@rudderstack/rudder-sdk-react-native": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@rudderstack/rudder-sdk-react-native/-/rudder-sdk-react-native-1.0.3.tgz",
|
||||
"integrity": "sha512-eYvNPh+x/XxcxM+jsUO5MN1y0U+PwIiHZyzvM66eIx/fwcPLQDLNDqW3pj99dhtf/9sv5Gu4EXtT3hFtLJ76pg==",
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@rudderstack/rudder-sdk-react-native/-/rudder-sdk-react-native-1.0.4.tgz",
|
||||
"integrity": "sha512-jSzgtHvuv0gqFgsCAsyyV4Cmk+rWg8TgPiLHLay8xELLxvIwRalkBv5bN3eFRJOYJQuIwR1KBQ3+p7nFHszN2w==",
|
||||
"requires": {
|
||||
"@babel/runtime": "^7.7.7",
|
||||
"@types/react-native": "^0.62.2"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "mattermost-mobile",
|
||||
"version": "1.38.0",
|
||||
"version": "1.38.1",
|
||||
"description": "Mattermost Mobile with React Native",
|
||||
"repository": "git@github.com:mattermost/mattermost-mobile.git",
|
||||
"author": "Mattermost, Inc.",
|
||||
@@ -15,7 +15,7 @@
|
||||
"@react-native-community/netinfo": "5.9.7",
|
||||
"@react-navigation/native": "5.8.9",
|
||||
"@react-navigation/stack": "5.12.6",
|
||||
"@rudderstack/rudder-sdk-react-native": "1.0.3",
|
||||
"@rudderstack/rudder-sdk-react-native": "1.0.4",
|
||||
"@sentry/react-native": "2.0.0",
|
||||
"analytics-react-native": "1.2.0",
|
||||
"commonmark": "github:mattermost/commonmark.js#f6ab98dede6ce4b4e7adea140ac77249bfb2d6ce",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/node_modules/react-native-keyboard-tracking-view/lib/KeyboardTrackingViewManager.m b/node_modules/react-native-keyboard-tracking-view/lib/KeyboardTrackingViewManager.m
|
||||
index 1333a10..53b73a6 100644
|
||||
index 1333a10..6922a17 100644
|
||||
--- a/node_modules/react-native-keyboard-tracking-view/lib/KeyboardTrackingViewManager.m
|
||||
+++ b/node_modules/react-native-keyboard-tracking-view/lib/KeyboardTrackingViewManager.m
|
||||
@@ -23,7 +23,7 @@
|
||||
@@ -197,7 +197,7 @@ index 1333a10..53b73a6 100644
|
||||
}
|
||||
}
|
||||
else if(self.scrollBehavior == KeyboardTrackingScrollBehaviorFixedOffset && !self.isDraggingScrollView)
|
||||
@@ -422,16 +459,20 @@ - (void)_updateScrollViewInsets
|
||||
@@ -422,16 +459,21 @@ - (void)_updateScrollViewInsets
|
||||
self.scrollViewToManage.contentOffset = CGPointMake(originalOffset.x, originalOffset.y + insetsDiff);
|
||||
}
|
||||
|
||||
@@ -219,14 +219,15 @@ index 1333a10..53b73a6 100644
|
||||
+ self.scrollViewToManage.frame = frame;
|
||||
+
|
||||
+ if (self.accessoriesContainer) {
|
||||
+ self.accessoriesContainer.bounds = CGRectMake(self.accessoriesContainer.bounds.origin.x, positionY,
|
||||
+ CGFloat containerPositionY = self.normalList ? 0 : _observingInputAccessoryView.keyboardHeight;
|
||||
+ self.accessoriesContainer.bounds = CGRectMake(self.accessoriesContainer.bounds.origin.x, containerPositionY,
|
||||
+ self.accessoriesContainer.bounds.size.width, self.accessoriesContainer.bounds.size.height);
|
||||
}
|
||||
- self.scrollViewToManage.scrollIndicatorInsets = insets;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -448,7 +489,6 @@ -(void)addBottomViewIfNecessary
|
||||
@@ -448,7 +490,6 @@ -(void)addBottomViewIfNecessary
|
||||
if (self.addBottomView && _bottomView == nil)
|
||||
{
|
||||
_bottomView = [UIView new];
|
||||
@@ -234,7 +235,7 @@ index 1333a10..53b73a6 100644
|
||||
[self addSubview:_bottomView];
|
||||
[self updateBottomViewFrame];
|
||||
}
|
||||
@@ -467,6 +507,12 @@ -(void)updateBottomViewFrame
|
||||
@@ -467,6 +508,12 @@ -(void)updateBottomViewFrame
|
||||
}
|
||||
}
|
||||
|
||||
@@ -247,7 +248,7 @@ index 1333a10..53b73a6 100644
|
||||
#pragma mark - safe area
|
||||
|
||||
-(void)safeAreaInsetsDidChange
|
||||
@@ -510,7 +556,7 @@ -(void)updateTransformAndInsets
|
||||
@@ -510,7 +557,7 @@ -(void)updateTransformAndInsets
|
||||
CGFloat accessoryTranslation = MIN(-bottomSafeArea, -_observingInputAccessoryView.keyboardHeight);
|
||||
|
||||
if (_observingInputAccessoryView.keyboardHeight <= bottomSafeArea) {
|
||||
@@ -256,7 +257,7 @@ index 1333a10..53b73a6 100644
|
||||
} else if (_observingInputAccessoryView.keyboardState != KeyboardStateWillHide) {
|
||||
_bottomViewHeight = 0;
|
||||
}
|
||||
@@ -582,6 +628,8 @@ - (void)scrollViewDidScroll:(UIScrollView *)scrollView
|
||||
@@ -582,6 +629,8 @@ - (void)scrollViewDidScroll:(UIScrollView *)scrollView
|
||||
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
|
||||
{
|
||||
self.isDraggingScrollView = YES;
|
||||
@@ -265,7 +266,7 @@ index 1333a10..53b73a6 100644
|
||||
}
|
||||
|
||||
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
|
||||
@@ -592,6 +640,15 @@ - (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoi
|
||||
@@ -592,6 +641,15 @@ - (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoi
|
||||
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
|
||||
{
|
||||
self.isDraggingScrollView = NO;
|
||||
@@ -281,7 +282,7 @@ index 1333a10..53b73a6 100644
|
||||
}
|
||||
|
||||
- (CGFloat)getKeyboardHeight
|
||||
@@ -634,6 +691,12 @@ @implementation KeyboardTrackingViewManager
|
||||
@@ -634,6 +692,12 @@ @implementation KeyboardTrackingViewManager
|
||||
RCT_REMAP_VIEW_PROPERTY(addBottomView, addBottomView, BOOL)
|
||||
RCT_REMAP_VIEW_PROPERTY(scrollToFocusedInput, scrollToFocusedInput, BOOL)
|
||||
RCT_REMAP_VIEW_PROPERTY(allowHitsOutsideBounds, allowHitsOutsideBounds, BOOL)
|
||||
@@ -294,7 +295,7 @@ index 1333a10..53b73a6 100644
|
||||
|
||||
+ (BOOL)requiresMainQueueSetup
|
||||
{
|
||||
@@ -654,6 +717,20 @@ - (UIView *)view
|
||||
@@ -654,6 +718,20 @@ - (UIView *)view
|
||||
return [[KeyboardTrackingView alloc] init];
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user