Merge branch 'develop' into feat.jitsi-ios-webview

This commit is contained in:
GleidsonDaniel 2023-04-18 14:58:21 -03:00
commit c9261ef11e
28 changed files with 96 additions and 91 deletions

View File

@ -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]

View File

@ -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) => (

View File

@ -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')}`);
}

View File

@ -634,5 +634,6 @@
"Logout_failed": "فشل تسجيل الخروج!",
"Log_analytics_events": "تحليلات سجل الأحداث",
"invalid-room": "غرفة غير صالحة",
"Broadcast_hint": "يمكن فقط للمستخدمين المصرح لهم كتابة رسائل جديدة، ولكن سيتمكن المستخدمون الآخرون من الرد"
"Broadcast_hint": "يمكن فقط للمستخدمين المصرح لهم كتابة رسائل جديدة، ولكن سيتمكن المستخدمون الآخرون من الرد",
"and_N_more": "و{{count}} آخرين"
}

View File

@ -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"
}

View File

@ -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"
}

View File

@ -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"
}

View File

@ -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ää"
}

View File

@ -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"
}

View File

@ -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}}"
}

View File

@ -547,5 +547,6 @@
"Clear": "クリア",
"This_will_clear_all_your_offline_data": "オフラインデータをすべて削除します。",
"invalid-room": "無効なルーム",
"Broadcast_hint": "許可されたユーザーのみが新しいメッセージを書き込めます。他のユーザーは返信することができます"
"Broadcast_hint": "許可されたユーザーのみが新しいメッセージを書き込めます。他のユーザーは返信することができます",
"and_N_more": "さらに{{count}}つ"
}

View File

@ -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}}"
}

View File

@ -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}}"
}

View File

@ -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}}"
}

View File

@ -844,5 +844,6 @@
"Calling": "Идет вызов",
"Start_a_call": "Начать звонок",
"Call": "Звонок",
"Reply_in_direct_message": "Ответить в личном сообщении"
"Reply_in_direct_message": "Ответить в личном сообщении",
"and_N_more": "и еще {{count}}"
}

View File

@ -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}}"
}

View File

@ -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}}"
}

View File

@ -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"
}

View File

@ -645,5 +645,6 @@
"No_threads_following": "当前没有正在追踪的讨论",
"No_threads_unread": "当前没有未读的讨论",
"Messagebox_Send_to_channel": "发送至频道",
"Broadcast_hint": "只有经过授权的用户才能写新信息,但其他用户可以回复"
"Broadcast_hint": "只有经过授权的用户才能写新信息,但其他用户可以回复",
"and_N_more": "另外{{count}}个"
}

View File

@ -655,5 +655,6 @@
"Confirmation": "確認",
"invalid-room": "無效的房間",
"Open_Livechats": "打開即時聊天",
"Broadcast_hint": "只有經過授權的使用者才能發送新訊息,但其他使用者可以回覆"
"Broadcast_hint": "只有經過授權的使用者才能發送新訊息,但其他使用者可以回覆",
"and_N_more": "另外{{count}}個"
}

View File

@ -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>
);
};

View File

@ -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}

View File

@ -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>
);
}

View File

@ -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>
);
}

View File

@ -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;

View File

@ -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>

View File

@ -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>

View File

@ -1,6 +1,6 @@
{
"name": "rocket-chat-reactnative",
"version": "4.38.0",
"version": "4.37.1",
"private": true,
"scripts": {
"start": "react-native start",