Merge branch 'develop' into feat.jitsi-ios-webview
This commit is contained in:
commit
c9261ef11e
|
@ -147,7 +147,7 @@ android {
|
|||
minSdkVersion rootProject.ext.minSdkVersion
|
||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||
versionCode VERSIONCODE as Integer
|
||||
versionName "4.38.0"
|
||||
versionName "4.37.1"
|
||||
vectorDrawables.useSupportLibrary = true
|
||||
if (!isFoss) {
|
||||
manifestPlaceholders = [BugsnagAPIKey: BugsnagAPIKey as String]
|
||||
|
|
|
@ -6,7 +6,7 @@ import scrollPersistTaps from '../lib/methods/helpers/scrollPersistTaps';
|
|||
interface IKeyboardViewProps extends KeyboardAwareScrollViewProps {
|
||||
keyboardVerticalOffset?: number;
|
||||
scrollEnabled?: boolean;
|
||||
children: React.ReactElement[] | React.ReactElement | null | (React.ReactElement | null)[];
|
||||
children: React.ReactElement[] | React.ReactElement;
|
||||
}
|
||||
|
||||
const KeyboardView = ({ style, contentContainerStyle, scrollEnabled, keyboardVerticalOffset, children }: IKeyboardViewProps) => (
|
||||
|
|
|
@ -39,7 +39,7 @@ const AllReactionsListItem = ({ item, getCustomEmoji }: IAllReactionsListItemPro
|
|||
.join(', ');
|
||||
}
|
||||
if (count > 3) {
|
||||
displayNames = `${displayNames} ${I18n.t('and_more')} ${count - 3}`;
|
||||
displayNames = `${displayNames} ${I18n.t('and_N_more', { count: count - 3 })}`;
|
||||
} else {
|
||||
displayNames = displayNames.replace(/,(?=[^,]*$)/, ` ${I18n.t('and')}`);
|
||||
}
|
||||
|
|
|
@ -634,5 +634,6 @@
|
|||
"Logout_failed": "فشل تسجيل الخروج!",
|
||||
"Log_analytics_events": "تحليلات سجل الأحداث",
|
||||
"invalid-room": "غرفة غير صالحة",
|
||||
"Broadcast_hint": "يمكن فقط للمستخدمين المصرح لهم كتابة رسائل جديدة، ولكن سيتمكن المستخدمون الآخرون من الرد"
|
||||
"Broadcast_hint": "يمكن فقط للمستخدمين المصرح لهم كتابة رسائل جديدة، ولكن سيتمكن المستخدمون الآخرون من الرد",
|
||||
"and_N_more": "و{{count}} آخرين"
|
||||
}
|
|
@ -858,5 +858,6 @@
|
|||
"Channel_hint_not_read_only": "Alle Nutzer im Kanal können neue Nachrichten schreiben",
|
||||
"Channel_hint_encrypted_not_available": "Nicht verfügbar in öffentlichen Kanälen",
|
||||
"Read_only_hint": "Nur autorisierte Benutzer können neue Nachrichten schreiben",
|
||||
"Discussion": "Diskussion"
|
||||
"Discussion": "Diskussion",
|
||||
"and_N_more": "und {{count}} weitere"
|
||||
}
|
|
@ -899,5 +899,6 @@
|
|||
"admin-video-conf-provider-not-configured-body": "Configure conference calls in order to make it available on this workspace.",
|
||||
"Presence_Cap_Warning_Title": "User status temporarily disabled",
|
||||
"Presence_Cap_Warning_Description": "Active connections have reached the limit for the workspace, thus the service that handles user status is disabled. It can be re-enabled manually in workspace settings.",
|
||||
"Learn_more": "Learn more"
|
||||
"Learn_more": "Learn more",
|
||||
"and_N_more": "and {{count}} more"
|
||||
}
|
|
@ -425,5 +425,6 @@
|
|||
"Server_selection_numbers": "Seleccionar servidor 1...9",
|
||||
"Add_server": "Añadir servidor",
|
||||
"New_line": "Nueva línea",
|
||||
"Broadcast_hint": "Sólo los usuarios autorizados pueden escribir nuevos mensajes, el resto podrán responder sobre los mismos."
|
||||
"Broadcast_hint": "Sólo los usuarios autorizados pueden escribir nuevos mensajes, el resto podrán responder sobre los mismos.",
|
||||
"and_N_more": "y {{count}} más"
|
||||
}
|
|
@ -876,5 +876,6 @@
|
|||
"Call": "Soita",
|
||||
"Reply_in_direct_message": "Vastaa suoralla viestillä",
|
||||
"room_archived": "arkistoi huoneen",
|
||||
"room_unarchived": "palautti huoneen arkistosta"
|
||||
"room_unarchived": "palautti huoneen arkistosta",
|
||||
"and_N_more": "ja {{count}} lisää"
|
||||
}
|
|
@ -791,5 +791,6 @@
|
|||
"Omnichannel_on_hold_chat_resumed": "Le chat en attente a repris : {{comment}}",
|
||||
"Omnichannel_queue": "File d'attente omnicanale",
|
||||
"Empty": "Vide",
|
||||
"Broadcast_hint": "Seuls les utilisateurs autorisés peuvent écrire de nouveaux messages, mais les autres utilisateurs pourront répondre."
|
||||
"Broadcast_hint": "Seuls les utilisateurs autorisés peuvent écrire de nouveaux messages, mais les autres utilisateurs pourront répondre.",
|
||||
"and_N_more": "et {{count}} de plus"
|
||||
}
|
|
@ -690,5 +690,6 @@
|
|||
"Workspace_URL_Example": "Es. tua-azienda.rocket.chat",
|
||||
"invalid-room": "Canale non valido",
|
||||
"Open_Livechats": "Chat in corso",
|
||||
"Broadcast_hint": "Solo gli utenti autorizzati possono scrivere messaggi, ma gli altri utenti saranno in grado di rispondere"
|
||||
"Broadcast_hint": "Solo gli utenti autorizzati possono scrivere messaggi, ma gli altri utenti saranno in grado di rispondere",
|
||||
"and_N_more": "e altri {{count}}"
|
||||
}
|
|
@ -547,5 +547,6 @@
|
|||
"Clear": "クリア",
|
||||
"This_will_clear_all_your_offline_data": "オフラインデータをすべて削除します。",
|
||||
"invalid-room": "無効なルーム",
|
||||
"Broadcast_hint": "許可されたユーザーのみが新しいメッセージを書き込めます。他のユーザーは返信することができます"
|
||||
"Broadcast_hint": "許可されたユーザーのみが新しいメッセージを書き込めます。他のユーザーは返信することができます",
|
||||
"and_N_more": "さらに{{count}}つ"
|
||||
}
|
|
@ -791,5 +791,6 @@
|
|||
"Omnichannel_on_hold_chat_resumed": "Chat in de wacht hervat: {{comment}}",
|
||||
"Omnichannel_queue": "Omnichannel-wachtrij",
|
||||
"Empty": "Leeg",
|
||||
"Broadcast_hint": "Alleen geautoriseerde gebruikers kunnen nieuwe berichten schrijven, maar de andere gebruikers zullen kunnen antwoorden"
|
||||
"Broadcast_hint": "Alleen geautoriseerde gebruikers kunnen nieuwe berichten schrijven, maar de andere gebruikers zullen kunnen antwoorden",
|
||||
"and_N_more": "en nog {{count}}"
|
||||
}
|
|
@ -885,5 +885,6 @@
|
|||
"Discard":"Descartar",
|
||||
"Discard_changes_description":"Todas as alterações serão perdidas, se você sair sem salvar.",
|
||||
"Presence_Cap_Warning_Title": "Status do usuário desabilitado temporariamente",
|
||||
"Presence_Cap_Warning_Description": "O limite de conexões ativas para a workspace foi atingido, por isso o serviço responsável pela presença dos usuários está temporariamente desabilitado. Ele pode ser reabilitado manualmente nas configurações da workspace."
|
||||
"Presence_Cap_Warning_Description": "O limite de conexões ativas para a workspace foi atingido, por isso o serviço responsável pela presença dos usuários está temporariamente desabilitado. Ele pode ser reabilitado manualmente nas configurações da workspace.",
|
||||
"and_N_more": "e mais {{count}}"
|
||||
}
|
|
@ -494,5 +494,6 @@
|
|||
"You": "Você",
|
||||
"You_will_not_be_able_to_recover_this_message": "Você será incapaz de recuperar esta mensagem!",
|
||||
"Open_Livechats": "Chats em andamento",
|
||||
"Broadcast_hint": "Apenas utilizadores autorizados podem escrever novas mensagens, mas os outros utilizadores poderão responder"
|
||||
"Broadcast_hint": "Apenas utilizadores autorizados podem escrever novas mensagens, mas os outros utilizadores poderão responder",
|
||||
"and_N_more": "e mais {{count}}"
|
||||
}
|
|
@ -844,5 +844,6 @@
|
|||
"Calling": "Идет вызов",
|
||||
"Start_a_call": "Начать звонок",
|
||||
"Call": "Звонок",
|
||||
"Reply_in_direct_message": "Ответить в личном сообщении"
|
||||
"Reply_in_direct_message": "Ответить в личном сообщении",
|
||||
"and_N_more": "и еще {{count}}"
|
||||
}
|
|
@ -809,5 +809,6 @@
|
|||
"error-init-video-conf": "Napaka Zagon video klica",
|
||||
"totp-invalid": "Koda ali geslo neveljavno",
|
||||
"Close_Chat": "Zaprite klepet",
|
||||
"Select_tags": "Izberite oznake"
|
||||
"Select_tags": "Izberite oznake",
|
||||
"and_N_more": "in še {{count}}"
|
||||
}
|
|
@ -874,5 +874,6 @@
|
|||
"Call": "Ring",
|
||||
"Reply_in_direct_message": "Svara med direktmeddelande",
|
||||
"room_archived": "arkiverade rum",
|
||||
"room_unarchived": "avarkiverade rum"
|
||||
"room_unarchived": "avarkiverade rum",
|
||||
"and_N_more": "och ytterligare {{count}}"
|
||||
}
|
|
@ -670,5 +670,6 @@
|
|||
"Workspace_URL_Example": "Örn. sirketiniz.rocket.chat",
|
||||
"invalid-room": "Geçersiz oda",
|
||||
"Open_Livechats": "Devam Eden Sohbetler",
|
||||
"Broadcast_hint": "Yalnızca yetkili kullanıcılar yeni ileti yazabilir, ancak diğer kullanıcılar yanıt verebilir"
|
||||
"Broadcast_hint": "Yalnızca yetkili kullanıcılar yeni ileti yazabilir, ancak diğer kullanıcılar yanıt verebilir",
|
||||
"and_N_more": "ve {{count}} daha"
|
||||
}
|
|
@ -645,5 +645,6 @@
|
|||
"No_threads_following": "当前没有正在追踪的讨论",
|
||||
"No_threads_unread": "当前没有未读的讨论",
|
||||
"Messagebox_Send_to_channel": "发送至频道",
|
||||
"Broadcast_hint": "只有经过授权的用户才能写新信息,但其他用户可以回复"
|
||||
"Broadcast_hint": "只有经过授权的用户才能写新信息,但其他用户可以回复",
|
||||
"and_N_more": "另外{{count}}个"
|
||||
}
|
|
@ -655,5 +655,6 @@
|
|||
"Confirmation": "確認",
|
||||
"invalid-room": "無效的房間",
|
||||
"Open_Livechats": "打開即時聊天",
|
||||
"Broadcast_hint": "只有經過授權的使用者才能發送新訊息,但其他使用者可以回覆"
|
||||
"Broadcast_hint": "只有經過授權的使用者才能發送新訊息,但其他使用者可以回覆",
|
||||
"and_N_more": "另外{{count}}個"
|
||||
}
|
|
@ -5,7 +5,6 @@ import { FlatList } from 'react-native';
|
|||
import { shallowEqual } from 'react-redux';
|
||||
import { useNavigation } from '@react-navigation/native';
|
||||
|
||||
import KeyboardView from '../../containers/KeyboardView';
|
||||
import * as HeaderButton from '../../containers/HeaderButton';
|
||||
import * as List from '../../containers/List';
|
||||
import SafeAreaView from '../../containers/SafeAreaView';
|
||||
|
@ -83,31 +82,29 @@ const NewMessageView = () => {
|
|||
|
||||
return (
|
||||
<SafeAreaView testID='new-message-view'>
|
||||
<KeyboardView>
|
||||
<StatusBar />
|
||||
<FlatList
|
||||
data={search.length > 0 ? search : chats}
|
||||
keyExtractor={item => item._id || item.rid}
|
||||
ListHeaderComponent={<HeaderNewMessage maxUsers={maxUsers} onChangeText={handleSearch} />}
|
||||
renderItem={({ item }) => {
|
||||
const itemSearch = item as ISearch;
|
||||
const itemModel = item as TSubscriptionModel;
|
||||
<StatusBar />
|
||||
<FlatList
|
||||
data={search.length > 0 ? search : chats}
|
||||
keyExtractor={item => item._id || item.rid}
|
||||
ListHeaderComponent={<HeaderNewMessage maxUsers={maxUsers} onChangeText={handleSearch} />}
|
||||
renderItem={({ item }) => {
|
||||
const itemSearch = item as ISearch;
|
||||
const itemModel = item as TSubscriptionModel;
|
||||
|
||||
return (
|
||||
<UserItem
|
||||
name={useRealName && itemSearch.fname ? itemSearch.fname : itemModel.name}
|
||||
username={itemSearch.search ? itemSearch.username : itemModel.name}
|
||||
onPress={() => goRoom(itemModel)}
|
||||
testID={`new-message-view-item-${item.name}`}
|
||||
/>
|
||||
);
|
||||
}}
|
||||
ItemSeparatorComponent={List.Separator}
|
||||
ListFooterComponent={List.Separator}
|
||||
contentContainerStyle={{ backgroundColor: colors.backgroundColor }}
|
||||
keyboardShouldPersistTaps='always'
|
||||
/>
|
||||
</KeyboardView>
|
||||
return (
|
||||
<UserItem
|
||||
name={useRealName && itemSearch.fname ? itemSearch.fname : itemModel.name}
|
||||
username={itemSearch.search ? itemSearch.username : itemModel.name}
|
||||
onPress={() => goRoom(itemModel)}
|
||||
testID={`new-message-view-item-${item.name}`}
|
||||
/>
|
||||
);
|
||||
}}
|
||||
ItemSeparatorComponent={List.Separator}
|
||||
ListFooterComponent={List.Separator}
|
||||
contentContainerStyle={{ backgroundColor: colors.backgroundColor }}
|
||||
keyboardShouldPersistTaps='always'
|
||||
/>
|
||||
</SafeAreaView>
|
||||
);
|
||||
};
|
||||
|
|
|
@ -11,7 +11,6 @@ import { Header } from '@react-navigation/elements';
|
|||
import { CompositeNavigationProp, RouteProp } from '@react-navigation/native';
|
||||
import { Dispatch } from 'redux';
|
||||
|
||||
import KeyboardView from '../../containers/KeyboardView';
|
||||
import database from '../../lib/database';
|
||||
import RoomItem, { ROW_HEIGHT, ROW_HEIGHT_CONDENSED } from '../../containers/RoomItem';
|
||||
import log, { logEvent, events } from '../../lib/methods/helpers/log';
|
||||
|
@ -63,8 +62,8 @@ import { E2E_BANNER_TYPE, DisplayMode, SortBy, MAX_SIDEBAR_WIDTH, themes } from
|
|||
import { Services } from '../../lib/services';
|
||||
|
||||
type TNavigation = CompositeNavigationProp<
|
||||
StackNavigationProp<ChatsStackParamList, 'RoomsListView'>,
|
||||
CompositeNavigationProp<StackNavigationProp<ChatsStackParamList>, StackNavigationProp<DrawerParamList>>
|
||||
StackNavigationProp<ChatsStackParamList, 'RoomsListView'>,
|
||||
CompositeNavigationProp<StackNavigationProp<ChatsStackParamList>, StackNavigationProp<DrawerParamList>>
|
||||
>;
|
||||
|
||||
interface IRoomsListViewProps {
|
||||
|
@ -480,11 +479,11 @@ class RoomsListView extends React.Component<IRoomsListViewProps, IRoomsListViewS
|
|||
|
||||
internalSetState = (
|
||||
state:
|
||||
| ((
|
||||
prevState: Readonly<IRoomsListViewState>,
|
||||
props: Readonly<IRoomsListViewProps>
|
||||
| ((
|
||||
prevState: Readonly<IRoomsListViewState>,
|
||||
props: Readonly<IRoomsListViewProps>
|
||||
) => Pick<IRoomsListViewState, keyof IRoomsListViewState> | IRoomsListViewState | null)
|
||||
| (Pick<IRoomsListViewState, keyof IRoomsListViewState> | IRoomsListViewState | null),
|
||||
| (Pick<IRoomsListViewState, keyof IRoomsListViewState> | IRoomsListViewState | null),
|
||||
callback?: () => void
|
||||
) => {
|
||||
if (this.animated) {
|
||||
|
@ -908,7 +907,7 @@ class RoomsListView extends React.Component<IRoomsListViewProps, IRoomsListViewS
|
|||
}
|
||||
};
|
||||
|
||||
getScrollRef = (ref: FlatList) => this.scroll = ref;
|
||||
getScrollRef = (ref: FlatList) => (this.scroll = ref);
|
||||
|
||||
renderListHeader = () => {
|
||||
const { searching } = this.state;
|
||||
|
@ -1026,11 +1025,9 @@ class RoomsListView extends React.Component<IRoomsListViewProps, IRoomsListViewS
|
|||
|
||||
return (
|
||||
<SafeAreaView testID='rooms-list-view' style={{ backgroundColor: themes[theme].backgroundColor }}>
|
||||
<KeyboardView>
|
||||
<StatusBar />
|
||||
{this.renderHeader()}
|
||||
{this.renderScroll()}
|
||||
</KeyboardView>
|
||||
<StatusBar />
|
||||
{this.renderHeader()}
|
||||
{this.renderScroll()}
|
||||
{/* TODO - this ts-ignore is here because the route props, on IBaseScreen*/}
|
||||
{/* @ts-ignore*/}
|
||||
{showServerDropdown ? <ServerDropdown navigation={navigation} theme={theme} /> : null}
|
||||
|
|
|
@ -39,7 +39,6 @@ import {
|
|||
ICustomEmoji
|
||||
} from '../../definitions';
|
||||
import { Services } from '../../lib/services';
|
||||
import KeyboardView from '../../containers/KeyboardView';
|
||||
|
||||
const QUERY_SIZE = 50;
|
||||
|
||||
|
@ -328,20 +327,18 @@ class SearchMessagesView extends React.Component<ISearchMessagesViewProps, ISear
|
|||
return (
|
||||
<SafeAreaView style={{ backgroundColor: themes[theme].backgroundColor }} testID='search-messages-view'>
|
||||
<StatusBar />
|
||||
<KeyboardView>
|
||||
<View style={styles.searchContainer}>
|
||||
<FormTextInput
|
||||
autoFocus
|
||||
label={I18n.t('Search')}
|
||||
onChangeText={this.search}
|
||||
placeholder={I18n.t('Search_Messages')}
|
||||
testID='search-message-view-input'
|
||||
/>
|
||||
<Markdown msg={I18n.t('You_can_search_using_RegExp_eg')} theme={theme} />
|
||||
<View style={[styles.divider, { backgroundColor: themes[theme].separatorColor }]} />
|
||||
</View>
|
||||
{this.renderList()}
|
||||
</KeyboardView>
|
||||
<View style={styles.searchContainer}>
|
||||
<FormTextInput
|
||||
autoFocus
|
||||
label={I18n.t('Search')}
|
||||
onChangeText={this.search}
|
||||
placeholder={I18n.t('Search_Messages')}
|
||||
testID='search-message-view-input'
|
||||
/>
|
||||
<Markdown msg={I18n.t('You_can_search_using_RegExp_eg')} theme={theme} />
|
||||
<View style={[styles.divider, { backgroundColor: themes[theme].separatorColor }]} />
|
||||
</View>
|
||||
{this.renderList()}
|
||||
</SafeAreaView>
|
||||
);
|
||||
}
|
||||
|
|
|
@ -35,7 +35,6 @@ import styles from './styles';
|
|||
import { IApplicationState, IBaseScreen, IMessage, SubscriptionType, TSubscriptionModel, TThreadModel } from '../../definitions';
|
||||
import { getUidDirectMessage, debounce, isIOS } from '../../lib/methods/helpers';
|
||||
import { Services } from '../../lib/services';
|
||||
import KeyboardView from '../../containers/KeyboardView';
|
||||
|
||||
const API_FETCH_COUNT = 50;
|
||||
|
||||
|
@ -517,18 +516,16 @@ class ThreadMessagesView extends React.Component<IThreadMessagesViewProps, IThre
|
|||
|
||||
return (
|
||||
<SafeAreaView testID='thread-messages-view'>
|
||||
<KeyboardView>
|
||||
<StatusBar />
|
||||
{this.renderContent()}
|
||||
{showFilterDropdown ? (
|
||||
<Dropdown
|
||||
currentFilter={currentFilter}
|
||||
onFilterSelected={this.onFilterSelected}
|
||||
onClose={this.closeFilterDropdown}
|
||||
theme={theme}
|
||||
/>
|
||||
) : null}
|
||||
</KeyboardView>
|
||||
<StatusBar />
|
||||
{this.renderContent()}
|
||||
{showFilterDropdown ? (
|
||||
<Dropdown
|
||||
currentFilter={currentFilter}
|
||||
onFilterSelected={this.onFilterSelected}
|
||||
onClose={this.closeFilterDropdown}
|
||||
theme={theme}
|
||||
/>
|
||||
) : null}
|
||||
</SafeAreaView>
|
||||
);
|
||||
}
|
||||
|
|
|
@ -1762,7 +1762,7 @@
|
|||
INFOPLIST_FILE = NotificationService/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||
MARKETING_VERSION = 4.38.0;
|
||||
MARKETING_VERSION = 4.37.1;
|
||||
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
||||
MTL_FAST_MATH = YES;
|
||||
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
|
||||
|
@ -1801,7 +1801,7 @@
|
|||
INFOPLIST_FILE = NotificationService/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||
MARKETING_VERSION = 4.38.0;
|
||||
MARKETING_VERSION = 4.37.1;
|
||||
MTL_FAST_MATH = YES;
|
||||
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.reactnative.NotificationService;
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>4.38.0</string>
|
||||
<string>4.37.1</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleURLTypes</key>
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
<key>CFBundlePackageType</key>
|
||||
<string>XPC!</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>4.38.0</string>
|
||||
<string>4.37.1</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
<key>KeychainGroup</key>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "rocket-chat-reactnative",
|
||||
"version": "4.38.0",
|
||||
"version": "4.37.1",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"start": "react-native start",
|
||||
|
|
Loading…
Reference in New Issue