[NEW] Channel actions (#2644)

* room roles

* handle owner

* endpoints

* Leader and Moderator

* Remove user from room

* stash ignore

* Add subscription.ignored column

* ignore user

* Fix icons

* I18n

* Minor i18n fixes

* Direct Message and open action sheet after a normal tap

* Fix icon

* stash isIgnored

* isManualUnignored message

* Fix update

* Ignored

* Mute, moderator, leader, owner, remove from room

* ignore

* Tests

* pt-BR

* Update pods

* Apply requested changes

* Add RC version on requests
This commit is contained in:
Diego Mello 2020-11-30 17:00:31 -03:00 committed by GitHub
parent 155fc04aca
commit 40490ea66c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
61 changed files with 24336 additions and 23927 deletions

View File

@ -42988,6 +42988,173 @@ exports[`Storyshots Message list message 1`] = `
</View>
</View>
</View>
<Text
style={
Array [
Object {
"fontSize": 20,
"fontWeight": "300",
"marginLeft": 10,
"marginVertical": 30,
},
Object {
"color": "#0d0e12",
},
Object {
"marginBottom": 0,
"marginTop": 30,
},
]
}
>
Ignored
</Text>
<View
accessible={true}
focusable={true}
onClick={[Function]}
onResponderGrant={[Function]}
onResponderMove={[Function]}
onResponderRelease={[Function]}
onResponderTerminate={[Function]}
onResponderTerminationRequest={[Function]}
onStartShouldSetResponder={[Function]}
style={
Object {
"opacity": 1,
}
}
>
<View>
<View
style={
Array [
Object {
"flexDirection": "column",
"paddingHorizontal": 14,
"paddingVertical": 4,
"width": "100%",
},
undefined,
]
}
>
<View
style={
Array [
Object {
"flexDirection": "row",
},
Object {
"alignItems": "center",
},
]
}
>
<View
style={
Array [
Object {
"borderRadius": 2,
"height": 20,
"width": 20,
},
Object {
"marginLeft": 16,
},
]
}
>
<View
accessible={true}
focusable={true}
onClick={[Function]}
onResponderGrant={[Function]}
onResponderMove={[Function]}
onResponderRelease={[Function]}
onResponderTerminate={[Function]}
onResponderTerminationRequest={[Function]}
onStartShouldSetResponder={[Function]}
style={
Object {
"opacity": 1,
}
}
>
<View
style={
Array [
Object {
"overflow": "hidden",
},
Object {
"borderRadius": 2,
"height": 20,
"width": 20,
},
]
}
>
<FastImageView
resizeMode="cover"
source={
Object {
"headers": undefined,
"priority": "high",
"uri": "https://open.rocket.chat/avatar/diego.mello?format=png&size=100",
}
}
style={
Object {
"bottom": 0,
"left": 0,
"position": "absolute",
"right": 0,
"top": 0,
}
}
/>
</View>
</View>
</View>
<View
style={
Array [
Object {
"flex": 1,
"marginLeft": 46,
},
Object {
"marginLeft": 10,
},
]
}
>
<View>
<Text
style={
Array [
Object {
"backgroundColor": "transparent",
"fontFamily": "System",
"fontSize": 16,
"fontStyle": "italic",
"fontWeight": "400",
},
Object {
"color": "#9ca2a8",
},
]
}
>
Message ignored. Tap to display it.
</Text>
</View>
</View>
</View>
</View>
</View>
</View>
<Text
style={
Array [

View File

@ -67,6 +67,10 @@ const Content = React.memo((props) => {
);
}
if (props.isIgnored) {
content = <Text style={[styles.textInfo, { color: themes[props.theme].auxiliaryText }]}>{I18n.t('Message_Ignored')}</Text>;
}
return (
<View style={props.isTemp && styles.temp}>
{content}
@ -88,6 +92,9 @@ const Content = React.memo((props) => {
if (prevProps.isEncrypted !== nextProps.isEncrypted) {
return false;
}
if (prevProps.isIgnored !== nextProps.isIgnored) {
return false;
}
if (!equal(prevProps.mentions, nextProps.mentions)) {
return false;
}
@ -111,6 +118,7 @@ Content.propTypes = {
mentions: PropTypes.oneOfType([PropTypes.array, PropTypes.object]),
navToRoomInfo: PropTypes.func,
useRealName: PropTypes.bool,
isIgnored: PropTypes.bool,
type: PropTypes.string
};
Content.displayName = 'MessageContent';

View File

@ -63,7 +63,7 @@ const MessageInner = React.memo((props) => {
MessageInner.displayName = 'MessageInner';
const Message = React.memo((props) => {
if (props.isThreadReply || props.isThreadSequential || props.isInfo) {
if (props.isThreadReply || props.isThreadSequential || props.isInfo || props.isIgnored) {
const thread = props.isThreadReply ? <RepliedThread {...props} /> : null;
return (
<View style={[styles.container, props.style]}>
@ -82,6 +82,7 @@ const Message = React.memo((props) => {
</View>
);
}
return (
<View style={[styles.container, props.style]}>
<View style={styles.flex}>
@ -146,7 +147,8 @@ Message.propTypes = {
onLongPress: PropTypes.func,
isReadReceiptEnabled: PropTypes.bool,
unread: PropTypes.bool,
theme: PropTypes.string
theme: PropTypes.string,
isIgnored: PropTypes.bool
};
MessageInner.propTypes = {

View File

@ -32,6 +32,7 @@ class MessageContainer extends React.Component {
autoTranslateRoom: PropTypes.bool,
autoTranslateLanguage: PropTypes.string,
status: PropTypes.number,
isIgnored: PropTypes.bool,
getCustomEmoji: PropTypes.func,
onLongPress: PropTypes.func,
onReactionPress: PropTypes.func,
@ -70,9 +71,12 @@ class MessageContainer extends React.Component {
blockAction: () => {},
archived: false,
broadcast: false,
isIgnored: false,
theme: 'light'
}
state = { isManualUnignored: false };
componentDidMount() {
const { item } = this.props;
if (item && item.observe) {
@ -83,14 +87,21 @@ class MessageContainer extends React.Component {
}
}
shouldComponentUpdate(nextProps) {
const { theme, threadBadgeColor } = this.props;
shouldComponentUpdate(nextProps, nextState) {
const { isManualUnignored } = this.state;
const { theme, threadBadgeColor, isIgnored } = this.props;
if (nextProps.theme !== theme) {
return true;
}
if (nextProps.threadBadgeColor !== threadBadgeColor) {
return true;
}
if (nextProps.isIgnored !== isIgnored) {
return true;
}
if (nextState.isManualUnignored !== isManualUnignored) {
return true;
}
return false;
}
@ -101,6 +112,10 @@ class MessageContainer extends React.Component {
}
onPress = debounce(() => {
if (this.isIgnored) {
return this.onIgnoredMessagePress();
}
const { item, isThreadRoom } = this.props;
KeyboardUtils.dismiss();
@ -161,6 +176,10 @@ class MessageContainer extends React.Component {
}
}
onIgnoredMessagePress = () => {
this.setState({ isManualUnignored: true });
}
get isHeader() {
const {
item, previousItem, broadcast, Message_GroupingPeriod
@ -226,6 +245,12 @@ class MessageContainer extends React.Component {
return item.status === messagesStatus.TEMP || item.status === messagesStatus.ERROR;
}
get isIgnored() {
const { isManualUnignored } = this.state;
const { isIgnored } = this.props;
return isManualUnignored ? false : isIgnored;
}
get hasError() {
const { item } = this.props;
return item.status === messagesStatus.ERROR;
@ -311,6 +336,7 @@ class MessageContainer extends React.Component {
fetchThreadName={fetchThreadName}
mentions={mentions}
channels={channels}
isIgnored={this.isIgnored}
isEdited={editedBy && !!editedBy.username}
isHeader={this.isHeader}
isThreadReply={this.isThreadReply}

View File

@ -552,7 +552,7 @@ export default {
Users: 'Benutzer',
User_added_by: 'Benutzer {{userAdded}} hinzugefügt von {{userBy}}',
User_Info: 'Benutzerinfo',
User_has_been_key: 'Benutzer wurde {{key}}!',
User_has_been_key: 'Benutzer wurde {{key}}',
User_is_no_longer_role_by_: '{{user}} ist nicht länger {{role}} von {{userBy}}',
User_muted_by: 'Benutzer {{userMuted}} von {{userBy}} stummgeschaltet',
User_removed_by: 'Benutzer {{userRemoved}} wurde von {{userBy}} entfernt',

View File

@ -552,7 +552,7 @@ export default {
Users: 'Users',
User_added_by: 'User {{userAdded}} added by {{userBy}}',
User_Info: 'User Info',
User_has_been_key: 'User has been {{key}}!',
User_has_been_key: 'User has been {{key}}',
User_is_no_longer_role_by_: '{{user}} is no longer {{role}} by {{userBy}}',
User_muted_by: 'User {{userMuted}} muted by {{userBy}}',
User_removed_by: 'User {{userRemoved}} removed by {{userBy}}',
@ -680,5 +680,27 @@ export default {
No_threads: 'There are no threads',
No_threads_following: 'You are not following any threads',
No_threads_unread: 'There are no unread threads',
Messagebox_Send_to_channel: 'Send to channel'
Messagebox_Send_to_channel: 'Send to channel',
Set_as_leader: 'Set as leader',
Set_as_moderator: 'Set as moderator',
Set_as_owner: 'Set as owner',
Remove_as_leader: 'Remove as leader',
Remove_as_moderator: 'Remove as moderator',
Remove_as_owner: 'Remove as owner',
Remove_from_room: 'Remove from room',
Ignore: 'Ignore',
Unignore: 'Unignore',
User_has_been_ignored: 'User has been ignored',
User_has_been_unignored: 'User is no longer ignored',
User_has_been_removed_from_s: 'User has been removed from {{s}}',
User__username__is_now_a_leader_of__room_name_: 'User {{username}} is now a leader of {{room_name}}',
User__username__is_now_a_moderator_of__room_name_: 'User {{username}} is now a moderator of {{room_name}}',
User__username__is_now_a_owner_of__room_name_: 'User {{username}} is now a owner of {{room_name}}',
User__username__removed_from__room_name__leaders: 'User {{username}} removed from {{room_name}} leaders',
User__username__removed_from__room_name__moderators: 'User {{username}} removed from {{room_name}} moderators',
User__username__removed_from__room_name__owners: 'User {{username}} removed from {{room_name}} owners',
The_user_will_be_removed_from_s: 'The user will be removed from {{s}}',
Yes_remove_user: 'Yes, remove user!',
Direct_message: 'Direct message',
Message_Ignored: 'Message ignored. Tap to display it.'
};

View File

@ -406,7 +406,7 @@ export default {
Upload_file_question_mark: 'Subir fichero?',
Users: 'Usuarios',
User_added_by: 'Usuario {{userAdded}} añadido por {{userBy}}',
User_has_been_key: 'El usuario ha sido {{key}}!',
User_has_been_key: 'El usuario ha sido {{key}}',
User_is_no_longer_role_by_: '{{user}} ha dejado de ser {{role}} por {{userBy}}',
User_muted_by: 'Usuario {{userMuted}} muteado por {{userBy}}',
User_removed_by: 'Usuario {{userRemoved}} eliminado por {{userBy}}',

View File

@ -520,7 +520,7 @@ export default {
Users: 'Utilisateurs',
User_added_by: 'L\'utilisateur {{userAdded}} a été ajouté par {{userBy}}',
User_Info: 'Info d\'utilisateur',
User_has_been_key: 'L\'utilisateur a été {{key}}!',
User_has_been_key: 'L\'utilisateur a été {{key}}',
User_is_no_longer_role_by_: '{{user}} n\'est plus {{role}} par {{userBy}}',
User_muted_by: 'L\'utilisateur {{userMuted}} a été rendu muet par {{userBy}}',
User_removed_by: 'L\'utilisateur {{userRemoved}} a été retiré par {{userBy}}',

View File

@ -549,7 +549,7 @@ export default {
Users: 'Utenti',
User_added_by: 'Utente {{userAdded}} aggiunto da {{userBy}}',
User_Info: 'Informazioni utente',
User_has_been_key: 'Utente {{key}}!',
User_has_been_key: 'Utente {{key}}',
User_is_no_longer_role_by_: '{{user}} non è più {{role}} da {{userBy}}',
User_muted_by: 'Utente {{userMuted}} silenziato da {{userBy}}',
User_removed_by: 'Utente {{userRemoved}} rimosso da {{userBy}}',

View File

@ -464,7 +464,7 @@ export default {
Users: 'ユーザー',
User_added_by: '{{userBy}} が {{userAdded}} を追加しました',
User_Info: 'ユーザー情報',
User_has_been_key: 'ユーザーは{{ key }}',
User_has_been_key: 'ユーザーは{{ key }}',
User_is_no_longer_role_by_: '{{userBy}} は {{user}} のロール {{role}} を削除しました。',
User_muted_by: '{{userBy}} は {{userMuted}} をミュートしました。',
User_removed_by: '{{userBy}} は {{userRemoved}} を退出させました。',

View File

@ -427,7 +427,7 @@ export default {
Users: 'Gebruikers',
User_added_by: 'Gebruiker {{userAdded}} toegevoegd door {{userBy}}',
User_Info: 'Gebruiker Info',
User_has_been_key: 'Gebruiker is {{key}}!',
User_has_been_key: 'Gebruiker is {{key}}',
User_is_no_longer_role_by_: '{{user}} is geen {{role}} meer door {{userBy}}',
User_muted_by: 'Gebruiker {{userMuted}} gedempt door {{userBy}}',
User_removed_by: 'Gebruiker {{userRemoved}} verwijderd door {{userBy}}',

View File

@ -509,7 +509,7 @@ export default {
User: 'Usuário',
Users: 'Usuários',
User_added_by: 'Usuário {{userAdded}} adicionado por {{userBy}}',
User_has_been_key: 'Usuário foi {{key}}!',
User_has_been_key: 'Usuário foi {{key}}',
User_is_no_longer_role_by_: '{{user}} não pertence mais à {{role}} por {{userBy}}',
User_muted_by: 'User {{userMuted}} muted por {{userBy}}',
User_removed_by: 'Usuário {{userRemoved}} removido por {{userBy}}',
@ -627,5 +627,27 @@ export default {
No_threads: 'Não há tópicos',
No_threads_following: 'Você não está seguindo tópicos',
No_threads_unread: 'Não há tópicos não lidos',
Messagebox_Send_to_channel: 'Mostrar no canal'
Messagebox_Send_to_channel: 'Mostrar no canal',
Set_as_leader: 'Definir como líder',
Set_as_moderator: 'Definir como moderador',
Set_as_owner: 'Definir como proprietário',
Remove_as_leader: 'Remover como líder',
Remove_as_moderator: 'Remover como moderador',
Remove_as_owner: 'Remover como owner',
Remove_from_room: 'Remover do canal',
Ignore: 'Ignorar',
Unignore: 'Deixar de ignorar',
User_has_been_ignored: 'Usuário foi ignorado',
User_has_been_unignored: 'O usuário não é mais ignorado',
User_has_been_removed_from_s: 'Usuário foi removido de {{s}}',
User__username__is_now_a_leader_of__room_name_: 'O usuário {{username}} agora é líder de {{room_name}}',
User__username__is_now_a_moderator_of__room_name_: 'O usuário {{username}} agora é moderador de {{room_name}}',
User__username__is_now_a_owner_of__room_name_: 'O usuário {{username}} agora é proprietário de {{room_name}}',
User__username__removed_from__room_name__leaders: 'O usuário {{username}} foi removido dos líderes de {{room_name}}',
User__username__removed_from__room_name__moderators: 'O usuário {{username}} foi removido dos moderadores de {{room_name}}',
User__username__removed_from__room_name__owners: 'O usuário {{username}} foi removido dos proprietários de {{room_name}}',
The_user_will_be_removed_from_s: 'O usuário será removido de {{s}}',
Yes_remove_user: 'Sim, remover usuário!',
Direct_message: 'Mensagem direta',
Message_Ignored: 'Mensagem ignorada. Toque para mostrar.'
};

View File

@ -324,7 +324,7 @@ export default {
Uploading: 'A enviar',
Upload_file_question_mark: 'Enviar ficheiro?',
User_added_by: 'Utilizador {{userAdded}} adicionado por {{userBy}}',
User_has_been_key: 'Utilizador foi {{key}}!',
User_has_been_key: 'Utilizador foi {{key}}',
User_is_no_longer_role_by_: '{{userBy}} removeu o estatuto de {{role}} de {{user}}',
User_muted_by: 'Utilizador {{userMuted}} foi silenciado por {{userBy}}',
User_removed_by: 'Utilizador {{userRemoved}} removido por {{userBy}}',

View File

@ -552,7 +552,7 @@ export default {
Users: 'Пользователи',
User_added_by: 'Пользователь {{userAdded}} добавлен по решению {{userBy}}',
User_Info: 'Информация о пользователе',
User_has_been_key: 'Пользователь был {{key}}!',
User_has_been_key: 'Пользователь был {{key}}',
User_is_no_longer_role_by_: '{{user}} больше не {{role}} по решению {{userBy}}',
User_muted_by: 'Пользователь {{userMuted}} заглушен по решению {{userBy}}',
User_removed_by: 'Пользователь {{userRemoved}} удален по решению {{userBy}}',

View File

@ -549,7 +549,7 @@ export default {
Users: '用戶',
User_added_by: '由{{userBy}}添加的用户 {{useradd}}',
User_Info: '用戶资讯',
User_has_been_key: '用户已被{{key}}!',
User_has_been_key: '用户已被{{key}}',
User_is_no_longer_role_by_: '{{userBy}}将角色 {{role}} 从用户 {{user}} 身上移除',
User_muted_by: '用户 {{userMuted}} 被 {{userBy}} 静音',
User_removed_by: '用户 {{userRemoved}} 被 {{userBy}} 移除',

View File

@ -549,7 +549,7 @@ export default {
Users: '使用者',
User_added_by: '由{{userBy}}添加的使用者 {{useradd}}',
User_Info: '使用者資訊',
User_has_been_key: '使用者已被{{key}}!',
User_has_been_key: '使用者已被{{key}}',
User_is_no_longer_role_by_: '{{userBy}}將角色 {{role}} 從使用者 {{user}} 身上移除',
User_muted_by: '使用者 {{userMuted}} 被 {{userBy}} 靜音',
User_removed_by: '使用者 {{userRemoved}} 被 {{userBy}} 移除',

View File

@ -76,6 +76,8 @@ export default class Subscription extends Model {
@json('muted', sanitizer) muted;
@json('ignored', sanitizer) ignored;
@field('broadcast') broadcast;
@field('prid') prid;

View File

@ -201,6 +201,17 @@ export default schemaMigrations({
]
})
]
},
{
toVersion: 12,
steps: [
addColumns({
table: 'subscriptions',
columns: [
{ name: 'ignored', type: 'string', isOptional: true }
]
})
]
}
]
});

View File

@ -1,7 +1,7 @@
import { appSchema, tableSchema } from '@nozbe/watermelondb';
export default appSchema({
version: 11,
version: 12,
tables: [
tableSchema({
name: 'subscriptions',
@ -37,6 +37,7 @@ export default appSchema({
{ name: 'archived', type: 'boolean' },
{ name: 'join_code_required', type: 'boolean', isOptional: true },
{ name: 'muted', type: 'string', isOptional: true },
{ name: 'ignored', type: 'string', isOptional: true },
{ name: 'broadcast', type: 'boolean', isOptional: true },
{ name: 'prid', type: 'string', isOptional: true },
{ name: 'draft_message', type: 'string', isOptional: true },

View File

@ -38,6 +38,9 @@ export const merge = (subscription, room) => {
if (!subscription.roles || !subscription.roles.length) {
subscription.roles = [];
}
if (!subscription.ignored?.length) {
subscription.ignored = [];
}
if (room.muted && room.muted.length) {
subscription.muted = room.muted.filter(muted => !!muted);
} else {

View File

@ -66,6 +66,7 @@ const createOrUpdateSubscription = async(subscription, room) => {
archived: s.archived,
joinCodeRequired: s.joinCodeRequired,
muted: s.muted,
ignored: s.ignored,
broadcast: s.broadcast,
prid: s.prid,
draftMessage: s.draftMessage,

View File

@ -1002,6 +1002,45 @@ const RocketChat = {
// RC 0.51.0
return this.methodCallWrapper('unmuteUserInRoom', { rid, username });
},
toggleRoomOwner({
roomId, t, userId, isOwner
}) {
if (isOwner) {
// RC 0.49.4
return this.post(`${ this.roomTypeToApiType(t) }.addOwner`, { roomId, userId });
}
// RC 0.49.4
return this.post(`${ this.roomTypeToApiType(t) }.removeOwner`, { roomId, userId });
},
toggleRoomLeader({
roomId, t, userId, isLeader
}) {
if (isLeader) {
// RC 0.58.0
return this.post(`${ this.roomTypeToApiType(t) }.addLeader`, { roomId, userId });
}
// RC 0.58.0
return this.post(`${ this.roomTypeToApiType(t) }.removeLeader`, { roomId, userId });
},
toggleRoomModerator({
roomId, t, userId, isModerator
}) {
if (isModerator) {
// RC 0.49.4
return this.post(`${ this.roomTypeToApiType(t) }.addModerator`, { roomId, userId });
}
// RC 0.49.4
return this.post(`${ this.roomTypeToApiType(t) }.removeModerator`, { roomId, userId });
},
removeUserFromRoom({
roomId, t, userId
}) {
// RC 0.48.0
return this.post(`${ this.roomTypeToApiType(t) }.kick`, { roomId, userId });
},
ignoreUser({ rid, userId, ignore }) {
return this.sdk.get('chat.ignoreUser', { rid, userId, ignore });
},
toggleArchiveRoom(roomId, t, archive) {
if (archive) {
// RC 0.48.0
@ -1094,6 +1133,10 @@ const RocketChat = {
return userRoles.indexOf(r => r === role) > -1;
},
getRoomRoles(roomId, type) {
// RC 0.65.0
return this.sdk.get(`${ this.roomTypeToApiType(type) }.roles`, { roomId });
},
async hasPermission(permissions, rid) {
const db = database.active;
const subsCollection = db.collections.get('subscriptions');

File diff suppressed because one or more lines are too long

View File

@ -524,7 +524,7 @@ class RoomActionsView extends React.Component {
event: this.toggleBlockUser
})}
testID='room-actions-block-user'
left={() => <List.Icon name='ban' color={themes[theme].dangerColor} />}
left={() => <List.Icon name='ignore' color={themes[theme].dangerColor} />}
showActionIndicator
color={themes[theme].dangerColor}
/>

View File

@ -42,7 +42,8 @@ class RoomMembersView extends React.Component {
}),
showActionSheet: PropTypes.func,
theme: PropTypes.string,
isMasterDetail: PropTypes.bool
isMasterDetail: PropTypes.bool,
useRealName: PropTypes.bool
}
constructor(props) {
@ -79,9 +80,13 @@ class RoomMembersView extends React.Component {
this.mounted = true;
this.fetchMembers();
const { route } = this.props;
const rid = route.params?.rid;
this.permissions = await RocketChat.hasPermission(['mute-user'], rid);
const { room } = this.state;
this.permissions = await RocketChat.hasPermission(['mute-user', 'set-leader', 'set-owner', 'set-moderator', 'remove-user'], room.rid);
const hasSinglePermission = Object.values(this.permissions).some(p => !!p);
if (hasSinglePermission) {
this.fetchRoomMembersRoles();
}
}
componentWillUnmount() {
@ -114,7 +119,7 @@ class RoomMembersView extends React.Component {
this.setState({ filtering: !!text, membersFiltered });
})
onPressUser = async(item) => {
navToDirectMessage = async(item) => {
try {
const db = database.active;
const subsCollection = db.collections.get('subscriptions');
@ -133,19 +138,65 @@ class RoomMembersView extends React.Component {
}
}
onLongPressUser = (user) => {
if (!this.permissions['mute-user']) {
return;
}
onPressUser = (selectedUser) => {
const { room } = this.state;
const { showActionSheet } = this.props;
const { muted } = room;
const { showActionSheet, user } = this.props;
const userIsMuted = !!(muted || []).find(m => m === user.username);
user.muted = userIsMuted;
const options = [{
icon: 'message',
title: I18n.t('Direct_message'),
onPress: () => this.navToDirectMessage(selectedUser)
}];
showActionSheet({
options: [{
// Owner
if (this.permissions['set-owner']) {
const userRoleResult = this.roomRoles.find(r => r.u._id === selectedUser._id);
const isOwner = userRoleResult?.roles.includes('owner');
options.push({
icon: 'shield-check',
title: I18n.t(isOwner ? 'Remove_as_owner' : 'Set_as_owner'),
onPress: () => this.handleOwner(selectedUser, !isOwner)
});
}
// Leader
if (this.permissions['set-leader']) {
const userRoleResult = this.roomRoles.find(r => r.u._id === selectedUser._id);
const isLeader = userRoleResult?.roles.includes('leader');
options.push({
icon: 'shield-alt',
title: I18n.t(isLeader ? 'Remove_as_leader' : 'Set_as_leader'),
onPress: () => this.handleLeader(selectedUser, !isLeader)
});
}
// Moderator
if (this.permissions['set-moderator']) {
const userRoleResult = this.roomRoles.find(r => r.u._id === selectedUser._id);
const isModerator = userRoleResult?.roles.includes('moderator');
options.push({
icon: 'shield',
title: I18n.t(isModerator ? 'Remove_as_moderator' : 'Set_as_moderator'),
onPress: () => this.handleModerator(selectedUser, !isModerator)
});
}
// Ignore
if (selectedUser._id !== user.id) {
const { ignored } = room;
const isIgnored = ignored?.includes?.(selectedUser._id);
options.push({
icon: 'ignore',
title: I18n.t(isIgnored ? 'Unignore' : 'Ignore'),
onPress: () => this.handleIgnore(selectedUser, !isIgnored)
});
}
if (this.permissions['mute-user']) {
const { muted = [] } = room;
const userIsMuted = muted.find?.(m => m === selectedUser.username);
selectedUser.muted = !!userIsMuted;
options.push({
icon: userIsMuted ? 'audio' : 'audio-disabled',
title: I18n.t(userIsMuted ? 'Unmute' : 'Mute'),
onPress: () => {
@ -154,10 +205,30 @@ class RoomMembersView extends React.Component {
roomName: RocketChat.getRoomTitle(room)
}),
confirmationText: I18n.t(userIsMuted ? 'Unmute' : 'Mute'),
onPress: () => this.handleMute(user)
onPress: () => this.handleMute(selectedUser)
});
}
}],
});
}
// Remove from room
if (this.permissions['remove-user']) {
options.push({
icon: 'logout',
title: I18n.t('Remove_from_room'),
danger: true,
onPress: () => {
showConfirmationAlert({
message: I18n.t('The_user_will_be_removed_from_s', { s: RocketChat.getRoomTitle(room) }),
confirmationText: I18n.t('Yes_remove_user'),
onPress: () => this.handleRemoveUserFromRoom(selectedUser)
});
}
});
}
showActionSheet({
options,
hasCancel: true
});
}
@ -173,7 +244,18 @@ class RoomMembersView extends React.Component {
}
}
// eslint-disable-next-line react/sort-comp
fetchRoomMembersRoles = async() => {
try {
const { room } = this.state;
const result = await RocketChat.getRoomRoles(room.rid, room.t);
if (result?.success) {
this.roomRoles = result.roles;
}
} catch (e) {
log(e);
}
}
fetchMembers = async() => {
const {
rid, members, isLoading, allUsers, end
@ -208,6 +290,11 @@ class RoomMembersView extends React.Component {
goRoom({ item, isMasterDetail });
}
getUserDisplayName = (user) => {
const { useRealName } = this.props;
return (useRealName ? user.name : user.username) || user.username;
}
handleMute = async(user) => {
const { rid } = this.state;
try {
@ -218,6 +305,92 @@ class RoomMembersView extends React.Component {
}
}
handleOwner = async(selectedUser, isOwner) => {
try {
const { room } = this.state;
await RocketChat.toggleRoomOwner({
roomId: room.rid, t: room.t, userId: selectedUser._id, isOwner
});
const message = isOwner ? 'User__username__is_now_a_owner_of__room_name_' : 'User__username__removed_from__room_name__owners';
EventEmitter.emit(LISTENER, {
message: I18n.t(message, {
username: this.getUserDisplayName(selectedUser),
room_name: RocketChat.getRoomTitle(room)
})
});
} catch (e) {
log(e);
}
this.fetchRoomMembersRoles();
}
handleLeader = async(selectedUser, isLeader) => {
try {
const { room } = this.state;
await RocketChat.toggleRoomLeader({
roomId: room.rid, t: room.t, userId: selectedUser._id, isLeader
});
const message = isLeader ? 'User__username__is_now_a_leader_of__room_name_' : 'User__username__removed_from__room_name__leaders';
EventEmitter.emit(LISTENER, {
message: I18n.t(message, {
username: this.getUserDisplayName(selectedUser),
room_name: RocketChat.getRoomTitle(room)
})
});
} catch (e) {
log(e);
}
this.fetchRoomMembersRoles();
}
handleModerator = async(selectedUser, isModerator) => {
try {
const { room } = this.state;
await RocketChat.toggleRoomModerator({
roomId: room.rid, t: room.t, userId: selectedUser._id, isModerator
});
const message = isModerator ? 'User__username__is_now_a_moderator_of__room_name_' : 'User__username__removed_from__room_name__moderators';
EventEmitter.emit(LISTENER, {
message: I18n.t(message, {
username: this.getUserDisplayName(selectedUser),
room_name: RocketChat.getRoomTitle(room)
})
});
} catch (e) {
log(e);
}
this.fetchRoomMembersRoles();
}
handleIgnore = async(selectedUser, ignore) => {
try {
const { room } = this.state;
await RocketChat.ignoreUser({
rid: room.rid, userId: selectedUser._id, ignore
});
const message = I18n.t(ignore ? 'User_has_been_ignored' : 'User_has_been_unignored');
EventEmitter.emit(LISTENER, { message });
} catch (e) {
log(e);
}
}
handleRemoveUserFromRoom = async(selectedUser) => {
try {
const { room, members, membersFiltered } = this.state;
const userId = selectedUser._id;
await RocketChat.removeUserFromRoom({ roomId: room.rid, t: room.t, userId });
const message = I18n.t('User_has_been_removed_from_s', { s: RocketChat.getRoomTitle(room) });
EventEmitter.emit(LISTENER, { message });
this.setState({
members: members.filter(member => member._id !== userId),
membersFiltered: membersFiltered.filter(member => member._id !== userId)
});
} catch (e) {
log(e);
}
}
renderSearchBar = () => (
<SearchBox onChangeText={text => this.onSearchChangeText(text)} testID='room-members-view-search' />
)
@ -235,7 +408,6 @@ class RoomMembersView extends React.Component {
name={item.name}
username={item.username}
onPress={() => this.onPressUser(item)}
onLongPress={() => this.onLongPressUser(item)}
baseUrl={baseUrl}
testID={`room-members-view-item-${ item.username }`}
user={user}
@ -279,7 +451,8 @@ class RoomMembersView extends React.Component {
const mapStateToProps = state => ({
baseUrl: state.server.server,
user: getUserSelector(state),
isMasterDetail: state.app.isMasterDetail
isMasterDetail: state.app.isMasterDetail,
useRealName: state.settings.UI_Use_Real_Name
});
export default connect(mapStateToProps)(withActionSheet(withTheme(RoomMembersView)));

View File

@ -31,6 +31,7 @@ class List extends React.Component {
listRef: PropTypes.func,
hideSystemMessages: PropTypes.array,
tunread: PropTypes.array,
ignored: PropTypes.array,
navigation: PropTypes.object,
showMessageInMainThread: PropTypes.bool
};
@ -77,7 +78,9 @@ class List extends React.Component {
shouldComponentUpdate(nextProps, nextState) {
const { loading, end, refreshing } = this.state;
const { hideSystemMessages, theme, tunread } = this.props;
const {
hideSystemMessages, theme, tunread, ignored
} = this.props;
if (theme !== nextProps.theme) {
return true;
}
@ -96,6 +99,9 @@ class List extends React.Component {
if (!isEqual(tunread, nextProps.tunread)) {
return true;
}
if (!isEqual(ignored, nextProps.ignored)) {
return true;
}
return false;
}

View File

@ -73,7 +73,7 @@ const stateAttrsUpdate = [
'readOnly',
'member'
];
const roomAttrsUpdate = ['f', 'ro', 'blocked', 'blocker', 'archived', 'muted', 'tunread', 'jitsiTimeout', 'announcement', 'sysMes', 'topic', 'name', 'fname', 'roles', 'bannerClosed', 'visitor'];
const roomAttrsUpdate = ['f', 'ro', 'blocked', 'blocker', 'archived', 'tunread', 'muted', 'ignored', 'jitsiTimeout', 'announcement', 'sysMes', 'topic', 'name', 'fname', 'roles', 'bannerClosed', 'visitor'];
class RoomView extends React.Component {
static propTypes = {
@ -857,6 +857,11 @@ class RoomView extends React.Component {
}
};
isIgnored = (message) => {
const { room } = this.state;
return room?.ignored?.includes?.(message?.u?._id) ?? false;
}
renderItem = (item, previousItem) => {
const { room, lastOpen, canAutoTranslate } = this.state;
const {
@ -886,6 +891,7 @@ class RoomView extends React.Component {
broadcast={room.broadcast}
status={item.status}
isThreadRoom={!!this.tmid}
isIgnored={this.isIgnored(item)}
previousItem={previousItem}
fetchThreadName={this.fetchThreadName}
onReactionPress={this.onReactionPress}
@ -1054,6 +1060,7 @@ class RoomView extends React.Component {
tmid={this.tmid}
theme={theme}
tunread={room?.tunread}
ignored={room?.ignored}
renderRow={this.renderItem}
loading={loading}
navigation={navigation}

View File

@ -62,7 +62,7 @@ const createGroupIfNotExists = async (groupname) => {
})
} catch (createError) {
try { //Maybe it exists already?
await rocketchat.get(`group.info?roomName=${groupname}`)
await rocketchat.get(`groups.info?roomName=${groupname}`)
} catch (infoError) {
console.log(JSON.stringify(createError))
console.log(JSON.stringify(infoError))
@ -71,6 +71,18 @@ const createGroupIfNotExists = async (groupname) => {
}
}
const sendMessage = async (user, groupname, msg) => {
console.log(`Sending message to ${groupname}`)
try {
await login(user.username, user.password);
await rocketchat.post('chat.postMessage', { channel: `#${groupname}`, msg });
} catch (infoError) {
console.log(JSON.stringify(createError))
console.log(JSON.stringify(infoError))
throw "Failed to find or create private group"
}
}
const setup = async () => {
await login(data.adminUser, data.adminPassword)
@ -100,4 +112,6 @@ const setup = async () => {
return
}
module.exports = setup
module.exports = {
setup, sendMessage
}

View File

@ -1,10 +1,10 @@
const detox = require('detox');
const config = require('../../package.json').detox;
const dataSetup = require('../helpers/data_setup')
const { setup } = require('../helpers/data_setup')
const adapter = require('detox/runners/mocha/adapter');
before(async() => {
await Promise.all([dataSetup(), detox.init(config, { launchApp: false })])
await Promise.all([setup(), detox.init(config, { launchApp: false })])
//await dataSetup()
//await detox.init(config, { launchApp: false });
//await device.launchApp({ permissions: { notifications: 'YES' } });

View File

@ -3,8 +3,7 @@ const {
} = require('detox');
const data = require('../../data');
const { navigateToLogin, login, tapBack, sleep, searchRoom, mockMessage, starMessage, pinMessage } = require('../../helpers/app');
const scrollDown = 200;
const { sendMessage } = require('../../helpers/data_setup')
async function navigateToRoomActions(type) {
let room;
@ -33,6 +32,10 @@ async function backToRoomsList() {
await waitFor(element(by.id('rooms-list-view'))).toExist().withTimeout(2000);
}
async function waitForToast() {
await sleep(1000);
}
describe('Room actions screen', () => {
before(async() => {
@ -343,18 +346,26 @@ describe('Room actions screen', () => {
await waitFor(element(by.id('room-actions-view'))).toExist().withTimeout(2000);
});
it('should add user to the room', async() => {
it('should add users to the room', async() => {
await waitFor(element(by.id('room-actions-add-user'))).toExist().withTimeout(4000);
await element(by.id('room-actions-add-user')).tap();
// add rocket.cat
const rocketCat = 'rocket.cat';
await waitFor(element(by.id(`select-users-view-item-${ rocketCat }`))).toExist().withTimeout(10000);
await element(by.id(`select-users-view-item-${ rocketCat }`)).tap();
await waitFor(element(by.id(`selected-user-${ rocketCat }`))).toExist().withTimeout(5000);
await waitFor(element(by.id('select-users-view-search'))).toExist().withTimeout(4000);
await element(by.id('select-users-view-search')).tap();
await element(by.id('select-users-view-search')).replaceText(user.username);
await waitFor(element(by.id(`select-users-view-item-${ user.username }`))).toExist().withTimeout(10000);
await element(by.id(`select-users-view-item-${ user.username }`)).tap();
await waitFor(element(by.id(`selected-user-${ user.username }`))).toExist().withTimeout(5000);
await element(by.id('selected-users-view-submit')).tap();
await waitFor(element(by.id('room-actions-view'))).toExist().withTimeout(2000);
await waitFor(element(by.id('room-actions-members'))).toExist().withTimeout(2000);
await sleep(300);
await waitFor(element(by.id('room-actions-members'))).toExist().withTimeout(10000);
await element(by.id('room-actions-members')).tap();
await element(by.id('room-members-view-toggle-status')).tap();
await waitFor(element(by.id(`room-members-view-item-${ user.username }`))).toExist().withTimeout(60000);
@ -381,30 +392,121 @@ describe('Room actions screen', () => {
await waitFor(element(by.id(`room-members-view-item-${ user.username }`))).toExist().withTimeout(60000);
});
// FIXME: mute/unmute isn't working
// it('should mute user', async() => {
// await sleep(1000);
// await element(by.id(`room-members-view-item-${ user.username }`)).longPress(1500);
// await waitFor(element(by.text('Mute'))).toExist().withTimeout(5000);
// await expect(element(by.text('Mute'))).toExist();
// await element(by.text('Mute')).tap();
// await waitFor(element(by.id('toast'))).toExist().withTimeout(10000);
// await expect(element(by.id('toast'))).toExist();
// await waitFor(element(by.id('toast'))).toBeNotVisible().withTimeout(10000);
// await expect(element(by.id('toast'))).toBeNotVisible();
// await element(by.id(`room-members-view-item-${ user.username }`)).longPress(1500);
// await waitFor(element(by.text('Unmute'))).toExist().withTimeout(2000);
// await expect(element(by.text('Unmute'))).toExist();
// await element(by.text('Unmute')).tap();
// await waitFor(element(by.id('toast'))).toExist().withTimeout(10000);
// await expect(element(by.id('toast'))).toExist();
// await waitFor(element(by.id('toast'))).toBeNotVisible().withTimeout(10000);
// await expect(element(by.id('toast'))).toBeNotVisible();
// });
it('should remove user from room', async() => {
await openActionSheet('rocket.cat');
await element(by.label('Remove from room')).tap();
await waitFor(element(by.label('Are you sure?'))).toExist().withTimeout(5000);
await element(by.label('Yes, remove user!').and(by.type('_UIAlertControllerActionView'))).tap();
await waitFor(element(by.id('room-members-view-item-rocket.cat'))).toBeNotVisible().withTimeout(60000);
});
it('should navigate to direct room', async() => {
await waitFor(element(by.id(`room-members-view-item-${ user.username }`))).toExist().withTimeout(5000);
await element(by.id(`room-members-view-item-${ user.username }`)).tap();
it('should clear search', async() => {
await element(by.id('room-members-view-search')).tap();
await element(by.id('room-members-view-search')).clearText('');
await waitFor(element(by.id(`room-members-view-item-${ user.username }`))).toExist().withTimeout(60000);
});
const openActionSheet = async(username) => {
await waitFor(element(by.id(`room-members-view-item-${ username }`))).toExist().withTimeout(5000);
await element(by.id(`room-members-view-item-${ username }`)).tap();
await sleep(300);
await expect(element(by.id('action-sheet'))).toExist();
await expect(element(by.id('action-sheet-handle'))).toBeVisible();
}
const closeActionSheet = async() => {
await element(by.id('action-sheet-backdrop')).tap();
}
it('should set/remove as owner', async() => {
await openActionSheet(user.username);
await element(by.label('Set as owner')).tap();
await waitForToast();
await openActionSheet(user.username);
await element(by.label('Remove as owner')).tap();
await waitForToast();
await openActionSheet(user.username);
// Tests if Remove as owner worked
await waitFor(element(by.label('Set as owner'))).toExist().withTimeout(5000);
await closeActionSheet();
});
it('should set/remove as leader', async() => {
await openActionSheet(user.username);
await element(by.label('Set as leader')).tap();
await waitForToast();
await openActionSheet(user.username);
await element(by.label('Remove as leader')).tap();
await waitForToast();
await openActionSheet(user.username);
// Tests if Remove as leader worked
await waitFor(element(by.label('Set as leader'))).toExist().withTimeout(5000);
await closeActionSheet();
});
it('should set/remove as moderator', async() => {
await openActionSheet(user.username);
await element(by.label('Set as moderator')).tap();
await waitForToast();
await openActionSheet(user.username);
await element(by.label('Remove as moderator')).tap();
await waitForToast();
await openActionSheet(user.username);
// Tests if Remove as moderator worked
await waitFor(element(by.label('Set as moderator'))).toExist().withTimeout(5000);
await closeActionSheet();
});
it('should set/remove as mute', async() => {
await openActionSheet(user.username);
await element(by.label('Mute')).tap();
await waitFor(element(by.label('Are you sure?'))).toExist().withTimeout(5000);
await element(by.label('Mute').and(by.type('_UIAlertControllerActionView'))).tap();
await waitForToast();
await openActionSheet(user.username);
await element(by.label('Unmute')).tap();
await waitFor(element(by.label('Are you sure?'))).toExist().withTimeout(5000);
await element(by.label('Unmute').and(by.type('_UIAlertControllerActionView'))).tap();
await waitForToast();
await openActionSheet(user.username);
// Tests if Remove as mute worked
await waitFor(element(by.label('Mute'))).toExist().withTimeout(5000);
await closeActionSheet();
});
it('should ignore user', async() => {
const message = `${ data.random }ignoredmessagecontent`;
const channelName = data.groups.private.name;
await sendMessage(user, channelName, message);
await openActionSheet(user.username);
await element(by.label('Ignore')).tap();
await waitForToast();
await backToActions();
await tapBack();
await waitFor(element(by.id('room-view'))).toExist().withTimeout(60000);
await waitFor(element(by.label('Message ignored. Tap to display it.')).atIndex(0)).toExist().withTimeout(60000);
await element(by.label('Message ignored. Tap to display it.')).atIndex(0).tap();
await waitFor(element(by.label(message)).atIndex(0)).toExist().withTimeout(60000);
await element(by.label(message)).atIndex(0).tap();
});
it('should navigate to direct message', async() => {
await element(by.id('room-view-header-actions')).tap();
await waitFor(element(by.id('room-actions-view'))).toExist().withTimeout(5000);
await element(by.id('room-actions-members')).tap();
await waitFor(element(by.id('room-members-view'))).toExist().withTimeout(2000);
await element(by.id('room-members-view-toggle-status')).tap();
await waitFor(element(by.id(`room-members-view-item-${ user.username }`))).toExist().withTimeout(60000);
await openActionSheet(user.username);
await element(by.label('Direct message')).tap();
await waitFor(element(by.id('room-view'))).toExist().withTimeout(60000);
await waitFor(element(by.id(`room-view-title-${ user.username }`))).toExist().withTimeout(60000);
await tapBack();

View File

@ -39,14 +39,14 @@ PODS:
- UMFileSystemInterface
- EXWebBrowser (8.3.1):
- UMCore
- FBLazyVector (0.63.1)
- FBReactNativeSpec (0.63.1):
- FBLazyVector (0.63.2)
- FBReactNativeSpec (0.63.2):
- Folly (= 2020.01.13.00)
- RCTRequired (= 0.63.1)
- RCTTypeSafety (= 0.63.1)
- React-Core (= 0.63.1)
- React-jsi (= 0.63.1)
- ReactCommon/turbomodule/core (= 0.63.1)
- RCTRequired (= 0.63.2)
- RCTTypeSafety (= 0.63.2)
- React-Core (= 0.63.2)
- React-jsi (= 0.63.2)
- ReactCommon/turbomodule/core (= 0.63.2)
- Firebase/Analytics (6.27.1):
- Firebase/Core
- Firebase/Core (6.27.1):
@ -196,172 +196,172 @@ PODS:
- OpenSSL-Universal/Static (= 1.0.2.19)
- OpenSSL-Universal/Static (1.0.2.19)
- PromisesObjC (1.2.9)
- RCTRequired (0.63.1)
- RCTTypeSafety (0.63.1):
- FBLazyVector (= 0.63.1)
- RCTRequired (0.63.2)
- RCTTypeSafety (0.63.2):
- FBLazyVector (= 0.63.2)
- Folly (= 2020.01.13.00)
- RCTRequired (= 0.63.1)
- React-Core (= 0.63.1)
- React (0.63.1):
- React-Core (= 0.63.1)
- React-Core/DevSupport (= 0.63.1)
- React-Core/RCTWebSocket (= 0.63.1)
- React-RCTActionSheet (= 0.63.1)
- React-RCTAnimation (= 0.63.1)
- React-RCTBlob (= 0.63.1)
- React-RCTImage (= 0.63.1)
- React-RCTLinking (= 0.63.1)
- React-RCTNetwork (= 0.63.1)
- React-RCTSettings (= 0.63.1)
- React-RCTText (= 0.63.1)
- React-RCTVibration (= 0.63.1)
- React-callinvoker (0.63.1)
- React-Core (0.63.1):
- RCTRequired (= 0.63.2)
- React-Core (= 0.63.2)
- React (0.63.2):
- React-Core (= 0.63.2)
- React-Core/DevSupport (= 0.63.2)
- React-Core/RCTWebSocket (= 0.63.2)
- React-RCTActionSheet (= 0.63.2)
- React-RCTAnimation (= 0.63.2)
- React-RCTBlob (= 0.63.2)
- React-RCTImage (= 0.63.2)
- React-RCTLinking (= 0.63.2)
- React-RCTNetwork (= 0.63.2)
- React-RCTSettings (= 0.63.2)
- React-RCTText (= 0.63.2)
- React-RCTVibration (= 0.63.2)
- React-callinvoker (0.63.2)
- React-Core (0.63.2):
- Folly (= 2020.01.13.00)
- glog
- React-Core/Default (= 0.63.1)
- React-cxxreact (= 0.63.1)
- React-jsi (= 0.63.1)
- React-jsiexecutor (= 0.63.1)
- React-Core/Default (= 0.63.2)
- React-cxxreact (= 0.63.2)
- React-jsi (= 0.63.2)
- React-jsiexecutor (= 0.63.2)
- Yoga
- React-Core/CoreModulesHeaders (0.63.1):
- React-Core/CoreModulesHeaders (0.63.2):
- Folly (= 2020.01.13.00)
- glog
- React-Core/Default
- React-cxxreact (= 0.63.1)
- React-jsi (= 0.63.1)
- React-jsiexecutor (= 0.63.1)
- React-cxxreact (= 0.63.2)
- React-jsi (= 0.63.2)
- React-jsiexecutor (= 0.63.2)
- Yoga
- React-Core/Default (0.63.1):
- React-Core/Default (0.63.2):
- Folly (= 2020.01.13.00)
- glog
- React-cxxreact (= 0.63.1)
- React-jsi (= 0.63.1)
- React-jsiexecutor (= 0.63.1)
- React-cxxreact (= 0.63.2)
- React-jsi (= 0.63.2)
- React-jsiexecutor (= 0.63.2)
- Yoga
- React-Core/DevSupport (0.63.1):
- React-Core/DevSupport (0.63.2):
- Folly (= 2020.01.13.00)
- glog
- React-Core/Default (= 0.63.1)
- React-Core/RCTWebSocket (= 0.63.1)
- React-cxxreact (= 0.63.1)
- React-jsi (= 0.63.1)
- React-jsiexecutor (= 0.63.1)
- React-jsinspector (= 0.63.1)
- React-Core/Default (= 0.63.2)
- React-Core/RCTWebSocket (= 0.63.2)
- React-cxxreact (= 0.63.2)
- React-jsi (= 0.63.2)
- React-jsiexecutor (= 0.63.2)
- React-jsinspector (= 0.63.2)
- Yoga
- React-Core/RCTActionSheetHeaders (0.63.1):
- React-Core/RCTActionSheetHeaders (0.63.2):
- Folly (= 2020.01.13.00)
- glog
- React-Core/Default
- React-cxxreact (= 0.63.1)
- React-jsi (= 0.63.1)
- React-jsiexecutor (= 0.63.1)
- React-cxxreact (= 0.63.2)
- React-jsi (= 0.63.2)
- React-jsiexecutor (= 0.63.2)
- Yoga
- React-Core/RCTAnimationHeaders (0.63.1):
- React-Core/RCTAnimationHeaders (0.63.2):
- Folly (= 2020.01.13.00)
- glog
- React-Core/Default
- React-cxxreact (= 0.63.1)
- React-jsi (= 0.63.1)
- React-jsiexecutor (= 0.63.1)
- React-cxxreact (= 0.63.2)
- React-jsi (= 0.63.2)
- React-jsiexecutor (= 0.63.2)
- Yoga
- React-Core/RCTBlobHeaders (0.63.1):
- React-Core/RCTBlobHeaders (0.63.2):
- Folly (= 2020.01.13.00)
- glog
- React-Core/Default
- React-cxxreact (= 0.63.1)
- React-jsi (= 0.63.1)
- React-jsiexecutor (= 0.63.1)
- React-cxxreact (= 0.63.2)
- React-jsi (= 0.63.2)
- React-jsiexecutor (= 0.63.2)
- Yoga
- React-Core/RCTImageHeaders (0.63.1):
- React-Core/RCTImageHeaders (0.63.2):
- Folly (= 2020.01.13.00)
- glog
- React-Core/Default
- React-cxxreact (= 0.63.1)
- React-jsi (= 0.63.1)
- React-jsiexecutor (= 0.63.1)
- React-cxxreact (= 0.63.2)
- React-jsi (= 0.63.2)
- React-jsiexecutor (= 0.63.2)
- Yoga
- React-Core/RCTLinkingHeaders (0.63.1):
- React-Core/RCTLinkingHeaders (0.63.2):
- Folly (= 2020.01.13.00)
- glog
- React-Core/Default
- React-cxxreact (= 0.63.1)
- React-jsi (= 0.63.1)
- React-jsiexecutor (= 0.63.1)
- React-cxxreact (= 0.63.2)
- React-jsi (= 0.63.2)
- React-jsiexecutor (= 0.63.2)
- Yoga
- React-Core/RCTNetworkHeaders (0.63.1):
- React-Core/RCTNetworkHeaders (0.63.2):
- Folly (= 2020.01.13.00)
- glog
- React-Core/Default
- React-cxxreact (= 0.63.1)
- React-jsi (= 0.63.1)
- React-jsiexecutor (= 0.63.1)
- React-cxxreact (= 0.63.2)
- React-jsi (= 0.63.2)
- React-jsiexecutor (= 0.63.2)
- Yoga
- React-Core/RCTSettingsHeaders (0.63.1):
- React-Core/RCTSettingsHeaders (0.63.2):
- Folly (= 2020.01.13.00)
- glog
- React-Core/Default
- React-cxxreact (= 0.63.1)
- React-jsi (= 0.63.1)
- React-jsiexecutor (= 0.63.1)
- React-cxxreact (= 0.63.2)
- React-jsi (= 0.63.2)
- React-jsiexecutor (= 0.63.2)
- Yoga
- React-Core/RCTTextHeaders (0.63.1):
- React-Core/RCTTextHeaders (0.63.2):
- Folly (= 2020.01.13.00)
- glog
- React-Core/Default
- React-cxxreact (= 0.63.1)
- React-jsi (= 0.63.1)
- React-jsiexecutor (= 0.63.1)
- React-cxxreact (= 0.63.2)
- React-jsi (= 0.63.2)
- React-jsiexecutor (= 0.63.2)
- Yoga
- React-Core/RCTVibrationHeaders (0.63.1):
- React-Core/RCTVibrationHeaders (0.63.2):
- Folly (= 2020.01.13.00)
- glog
- React-Core/Default
- React-cxxreact (= 0.63.1)
- React-jsi (= 0.63.1)
- React-jsiexecutor (= 0.63.1)
- React-cxxreact (= 0.63.2)
- React-jsi (= 0.63.2)
- React-jsiexecutor (= 0.63.2)
- Yoga
- React-Core/RCTWebSocket (0.63.1):
- React-Core/RCTWebSocket (0.63.2):
- Folly (= 2020.01.13.00)
- glog
- React-Core/Default (= 0.63.1)
- React-cxxreact (= 0.63.1)
- React-jsi (= 0.63.1)
- React-jsiexecutor (= 0.63.1)
- React-Core/Default (= 0.63.2)
- React-cxxreact (= 0.63.2)
- React-jsi (= 0.63.2)
- React-jsiexecutor (= 0.63.2)
- Yoga
- React-CoreModules (0.63.1):
- FBReactNativeSpec (= 0.63.1)
- React-CoreModules (0.63.2):
- FBReactNativeSpec (= 0.63.2)
- Folly (= 2020.01.13.00)
- RCTTypeSafety (= 0.63.1)
- React-Core/CoreModulesHeaders (= 0.63.1)
- React-jsi (= 0.63.1)
- React-RCTImage (= 0.63.1)
- ReactCommon/turbomodule/core (= 0.63.1)
- React-cxxreact (0.63.1):
- RCTTypeSafety (= 0.63.2)
- React-Core/CoreModulesHeaders (= 0.63.2)
- React-jsi (= 0.63.2)
- React-RCTImage (= 0.63.2)
- ReactCommon/turbomodule/core (= 0.63.2)
- React-cxxreact (0.63.2):
- boost-for-react-native (= 1.63.0)
- DoubleConversion
- Folly (= 2020.01.13.00)
- glog
- React-callinvoker (= 0.63.1)
- React-jsinspector (= 0.63.1)
- React-jsi (0.63.1):
- React-callinvoker (= 0.63.2)
- React-jsinspector (= 0.63.2)
- React-jsi (0.63.2):
- boost-for-react-native (= 1.63.0)
- DoubleConversion
- Folly (= 2020.01.13.00)
- glog
- React-jsi/Default (= 0.63.1)
- React-jsi/Default (0.63.1):
- React-jsi/Default (= 0.63.2)
- React-jsi/Default (0.63.2):
- boost-for-react-native (= 1.63.0)
- DoubleConversion
- Folly (= 2020.01.13.00)
- glog
- React-jsiexecutor (0.63.1):
- React-jsiexecutor (0.63.2):
- DoubleConversion
- Folly (= 2020.01.13.00)
- glog
- React-cxxreact (= 0.63.1)
- React-jsi (= 0.63.1)
- React-jsinspector (0.63.1)
- React-cxxreact (= 0.63.2)
- React-jsi (= 0.63.2)
- React-jsinspector (0.63.2)
- react-native-appearance (0.3.4):
- React
- react-native-background-timer (2.2.0):
@ -391,66 +391,66 @@ PODS:
- React
- react-native-webview (10.3.2):
- React
- React-RCTActionSheet (0.63.1):
- React-Core/RCTActionSheetHeaders (= 0.63.1)
- React-RCTAnimation (0.63.1):
- FBReactNativeSpec (= 0.63.1)
- React-RCTActionSheet (0.63.2):
- React-Core/RCTActionSheetHeaders (= 0.63.2)
- React-RCTAnimation (0.63.2):
- FBReactNativeSpec (= 0.63.2)
- Folly (= 2020.01.13.00)
- RCTTypeSafety (= 0.63.1)
- React-Core/RCTAnimationHeaders (= 0.63.1)
- React-jsi (= 0.63.1)
- ReactCommon/turbomodule/core (= 0.63.1)
- React-RCTBlob (0.63.1):
- FBReactNativeSpec (= 0.63.1)
- RCTTypeSafety (= 0.63.2)
- React-Core/RCTAnimationHeaders (= 0.63.2)
- React-jsi (= 0.63.2)
- ReactCommon/turbomodule/core (= 0.63.2)
- React-RCTBlob (0.63.2):
- FBReactNativeSpec (= 0.63.2)
- Folly (= 2020.01.13.00)
- React-Core/RCTBlobHeaders (= 0.63.1)
- React-Core/RCTWebSocket (= 0.63.1)
- React-jsi (= 0.63.1)
- React-RCTNetwork (= 0.63.1)
- ReactCommon/turbomodule/core (= 0.63.1)
- React-RCTImage (0.63.1):
- FBReactNativeSpec (= 0.63.1)
- React-Core/RCTBlobHeaders (= 0.63.2)
- React-Core/RCTWebSocket (= 0.63.2)
- React-jsi (= 0.63.2)
- React-RCTNetwork (= 0.63.2)
- ReactCommon/turbomodule/core (= 0.63.2)
- React-RCTImage (0.63.2):
- FBReactNativeSpec (= 0.63.2)
- Folly (= 2020.01.13.00)
- RCTTypeSafety (= 0.63.1)
- React-Core/RCTImageHeaders (= 0.63.1)
- React-jsi (= 0.63.1)
- React-RCTNetwork (= 0.63.1)
- ReactCommon/turbomodule/core (= 0.63.1)
- React-RCTLinking (0.63.1):
- FBReactNativeSpec (= 0.63.1)
- React-Core/RCTLinkingHeaders (= 0.63.1)
- React-jsi (= 0.63.1)
- ReactCommon/turbomodule/core (= 0.63.1)
- React-RCTNetwork (0.63.1):
- FBReactNativeSpec (= 0.63.1)
- RCTTypeSafety (= 0.63.2)
- React-Core/RCTImageHeaders (= 0.63.2)
- React-jsi (= 0.63.2)
- React-RCTNetwork (= 0.63.2)
- ReactCommon/turbomodule/core (= 0.63.2)
- React-RCTLinking (0.63.2):
- FBReactNativeSpec (= 0.63.2)
- React-Core/RCTLinkingHeaders (= 0.63.2)
- React-jsi (= 0.63.2)
- ReactCommon/turbomodule/core (= 0.63.2)
- React-RCTNetwork (0.63.2):
- FBReactNativeSpec (= 0.63.2)
- Folly (= 2020.01.13.00)
- RCTTypeSafety (= 0.63.1)
- React-Core/RCTNetworkHeaders (= 0.63.1)
- React-jsi (= 0.63.1)
- ReactCommon/turbomodule/core (= 0.63.1)
- React-RCTSettings (0.63.1):
- FBReactNativeSpec (= 0.63.1)
- RCTTypeSafety (= 0.63.2)
- React-Core/RCTNetworkHeaders (= 0.63.2)
- React-jsi (= 0.63.2)
- ReactCommon/turbomodule/core (= 0.63.2)
- React-RCTSettings (0.63.2):
- FBReactNativeSpec (= 0.63.2)
- Folly (= 2020.01.13.00)
- RCTTypeSafety (= 0.63.1)
- React-Core/RCTSettingsHeaders (= 0.63.1)
- React-jsi (= 0.63.1)
- ReactCommon/turbomodule/core (= 0.63.1)
- React-RCTText (0.63.1):
- React-Core/RCTTextHeaders (= 0.63.1)
- React-RCTVibration (0.63.1):
- FBReactNativeSpec (= 0.63.1)
- RCTTypeSafety (= 0.63.2)
- React-Core/RCTSettingsHeaders (= 0.63.2)
- React-jsi (= 0.63.2)
- ReactCommon/turbomodule/core (= 0.63.2)
- React-RCTText (0.63.2):
- React-Core/RCTTextHeaders (= 0.63.2)
- React-RCTVibration (0.63.2):
- FBReactNativeSpec (= 0.63.2)
- Folly (= 2020.01.13.00)
- React-Core/RCTVibrationHeaders (= 0.63.1)
- React-jsi (= 0.63.1)
- ReactCommon/turbomodule/core (= 0.63.1)
- ReactCommon/turbomodule/core (0.63.1):
- React-Core/RCTVibrationHeaders (= 0.63.2)
- React-jsi (= 0.63.2)
- ReactCommon/turbomodule/core (= 0.63.2)
- ReactCommon/turbomodule/core (0.63.2):
- DoubleConversion
- Folly (= 2020.01.13.00)
- glog
- React-callinvoker (= 0.63.1)
- React-Core (= 0.63.1)
- React-cxxreact (= 0.63.1)
- React-jsi (= 0.63.1)
- React-callinvoker (= 0.63.2)
- React-Core (= 0.63.2)
- React-cxxreact (= 0.63.2)
- React-jsi (= 0.63.2)
- ReactNativeART (1.2.0):
- React
- ReactNativeKeyboardInput (6.0.0):
@ -473,7 +473,7 @@ PODS:
- React
- RNDeviceInfo (5.6.2):
- React
- RNFastImage (8.1.5):
- RNFastImage (8.2.0):
- React
- SDWebImage (~> 5.0)
- SDWebImageWebPCoder (~> 0.4.1)
@ -882,8 +882,8 @@ SPEC CHECKSUMS:
EXPermissions: 80ac3acbdb145930079810fe5b08c022b3428aa8
EXVideoThumbnails: f70bdc5511749f3181028f5000bcb7be203c631d
EXWebBrowser: d37a5ffdea1b65947352bc001dd9f732463725d4
FBLazyVector: a50434c875bd42f2b1c99c712bda892a1dc659c7
FBReactNativeSpec: 393853a536428e05a9da00b6290042f09809b15b
FBLazyVector: 3ef4a7f62e7db01092f9d517d2ebc0d0677c4a37
FBReactNativeSpec: dc7fa9088f0f2a998503a352b0554d69a4391c5a
Firebase: 919186c8e119dd9372a45fd1dd17a8a942bc1892
FirebaseAnalytics: 5fa308e1b13f838d0f6dc74719ac2a72e8c5afc4
FirebaseCore: 8cd4f8ea22075e0ee582849b1cf79d8816506085
@ -911,16 +911,16 @@ SPEC CHECKSUMS:
nanopb: c43f40fadfe79e8b8db116583945847910cbabc9
OpenSSL-Universal: 8b48cc0d10c1b2923617dfe5c178aa9ed2689355
PromisesObjC: b48e0338dbbac2207e611750777895f7a5811b75
RCTRequired: d9b1a9e6fa097744ca3ede59f86a35096df7202b
RCTTypeSafety: c227cd061983e9e964115afbc4e8730d6a6f1395
React: 86e972a20967ee4137aa19dc48319405927c2e94
React-callinvoker: 87ee376c25277d74e164ff036b27084e343f3e69
React-Core: f5ec03baf7ed58d9f3ee04a8f84e4c97ee8bf4c9
React-CoreModules: 958898aa8c069280e866e35a2f29480a81fcf335
React-cxxreact: 90de76b9b51575668ad7fd4e33a5a8c143beecc2
React-jsi: b32a31da32e030f30bbf9a8d3a9c8325df9e793f
React-jsiexecutor: 7ab9cdcdd18d57652fb041f8a147fe9658d4e00a
React-jsinspector: 2e28bb487e42dda6c94dbfa0c648d1343767a0fb
RCTRequired: f13f25e7b12f925f1f6a6a8c69d929a03c0129fe
RCTTypeSafety: 44982c5c8e43ff4141eb519a8ddc88059acd1f3a
React: e1c65dd41cb9db13b99f24608e47dd595f28ca9a
React-callinvoker: 552a6a6bc8b3bb794cf108ad59e5a9e2e3b4fc98
React-Core: 9d341e725dc9cd2f49e4c49ad1fc4e8776aa2639
React-CoreModules: 5335e168165da7f7083ce7147768d36d3e292318
React-cxxreact: d3261ec5f7d11743fbf21e263a34ea51d1f13ebc
React-jsi: 54245e1d5f4b690dec614a73a3795964eeef13a8
React-jsiexecutor: 8ca588cc921e70590820ce72b8789b02c67cce38
React-jsinspector: b14e62ebe7a66e9231e9581279909f2fc3db6606
react-native-appearance: 0f0e5fc2fcef70e03d48c8fe6b00b9158c2ba8aa
react-native-background-timer: 1f7d560647b40e6a60b01c452ba29c54bf581fc4
react-native-cameraroll: ae0a7c0cc8462508855707ff623b1e789b692865
@ -934,16 +934,16 @@ SPEC CHECKSUMS:
react-native-simple-crypto: 564740fd8124827d82e9e8ded4a0de8c695c8a4d
react-native-slider: 0221b417686c5957f6e77cd9ac22c1478a165355
react-native-webview: 679b6f400176e2ea8a785acf7ae16cf282e7d1eb
React-RCTActionSheet: 1702a1a85e550b5c36e2e03cb2bd3adea053de95
React-RCTAnimation: ddda576010a878865a4eab83a78acd92176ef6a1
React-RCTBlob: 34334384284c81577409d5205bd2b9ff594d8ab6
React-RCTImage: e2a661266dca295cffb33909cc64675a2efedb26
React-RCTLinking: cd39b9b5e9cbb9e827854e30dfa92d7db074cea8
React-RCTNetwork: 16939b7e4058d6f662b304a1f61689e249a2bfcc
React-RCTSettings: 24726a62de0c326f9ebfc3838898a501b87ce711
React-RCTText: 4f95d322b7e6da72817284abf8a2cdcec18b9cd8
React-RCTVibration: f3a9123c244f35c40d3c9f3ec3f0b9e5717bb292
ReactCommon: 2905859f84a94a381bb0d8dd3921ccb1a0047cb8
React-RCTActionSheet: 910163b6b09685a35c4ebbc52b66d1bfbbe39fc5
React-RCTAnimation: 9a883bbe1e9d2e158d4fb53765ed64c8dc2200c6
React-RCTBlob: 39cf0ece1927996c4466510e25d2105f67010e13
React-RCTImage: de355d738727b09ad3692f2a979affbd54b5f378
React-RCTLinking: 8122f221d395a63364b2c0078ce284214bd04575
React-RCTNetwork: 8f96c7b49ea6a0f28f98258f347b6ad218bc0830
React-RCTSettings: 8a49622aff9c1925f5455fa340b6fe4853d64ab6
React-RCTText: 1b6773e776e4b33f90468c20fe3b16ca3e224bb8
React-RCTVibration: 4d2e726957f4087449739b595f107c0d4b6c2d2d
ReactCommon: a0a1edbebcac5e91338371b72ffc66aa822792ce
ReactNativeART: 78edc68dd4a1e675338cd0cd113319cf3a65f2ab
ReactNativeKeyboardInput: c37e26821519869993b3b61844350feb9177ff37
ReactNativeKeyboardTrackingView: 02137fac3b2ebd330d74fa54ead48b14750a2306
@ -955,7 +955,7 @@ SPEC CHECKSUMS:
RNConfigReader: 396da6a6444182a76e8ae0930b9436c7575045cb
RNDateTimePicker: e386ff4ef3300964ed0cad97ce6f206e0effbfdb
RNDeviceInfo: ed8557a8bd6443cbc0ab5d375e6808a38a279744
RNFastImage: 35ae972d6727c84ee3f5c6897e07f84d0a3445e9
RNFastImage: f40d202ea2367239f71bc7cf11315f4bebab85b4
RNFBAnalytics: dae6d7b280ba61c96e1bbdd34aca3154388f025e
RNFBApp: 6fd8a7e757135d4168bf033a8812c241af7363a0
RNFBCrashlytics: 88de72c2476b5868a892d9523b89b86c527c540e
@ -982,7 +982,7 @@ SPEC CHECKSUMS:
UMReactNativeAdapter: 538efe92e781b5d7678cf95b34c46f2d0989a557
UMSensorsInterface: cb5bf31d52c4349f0ff9e3c049bbe4df0d80d383
UMTaskManagerInterface: 80653f25c55d9e6d79d6a0a65589fa213feaee11
Yoga: d5bd05a2b6b94c52323745c2c2b64557c8c66f64
Yoga: 7740b94929bbacbddda59bf115b5317e9a161598
YogaKit: f782866e155069a2cca2517aafea43200b01fd5a
PODFILE CHECKSUM: c38f9a91b5c154453863a4ee1ccc203da58ad2f2

View File

@ -1,6 +1,6 @@
{
"name": "FBLazyVector",
"version": "0.63.1",
"version": "0.63.2",
"summary": "-",
"homepage": "https://reactnative.dev/",
"license": "MIT",
@ -11,7 +11,7 @@
},
"source": {
"git": "https://github.com/facebook/react-native.git",
"tag": "v0.63.1"
"tag": "v0.63.2"
},
"source_files": "**/*.{c,h,m,mm,cpp}",
"header_dir": "FBLazyVector"

View File

@ -1,6 +1,6 @@
{
"name": "FBReactNativeSpec",
"version": "0.63.1",
"version": "0.63.2",
"summary": "-",
"homepage": "https://reactnative.dev/",
"license": "MIT",
@ -12,7 +12,7 @@
"compiler_flags": "-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32 -Wno-nullability-completeness",
"source": {
"git": "https://github.com/facebook/react-native.git",
"tag": "v0.63.1"
"tag": "v0.63.2"
},
"source_files": "**/*.{c,h,m,mm,cpp}",
"header_dir": "FBReactNativeSpec",
@ -26,19 +26,19 @@
"2020.01.13.00"
],
"RCTRequired": [
"0.63.1"
"0.63.2"
],
"RCTTypeSafety": [
"0.63.1"
"0.63.2"
],
"React-Core": [
"0.63.1"
"0.63.2"
],
"React-jsi": [
"0.63.1"
"0.63.2"
],
"ReactCommon/turbomodule/core": [
"0.63.1"
"0.63.2"
]
}
}

View File

@ -1,6 +1,6 @@
{
"name": "RCTRequired",
"version": "0.63.1",
"version": "0.63.2",
"summary": "-",
"homepage": "https://reactnative.dev/",
"license": "MIT",
@ -11,7 +11,7 @@
},
"source": {
"git": "https://github.com/facebook/react-native.git",
"tag": "v0.63.1"
"tag": "v0.63.2"
},
"source_files": "**/*.{c,h,m,mm,cpp}",
"header_dir": "RCTRequired"

View File

@ -1,6 +1,6 @@
{
"name": "RCTTypeSafety",
"version": "0.63.1",
"version": "0.63.2",
"summary": "-",
"homepage": "https://reactnative.dev/",
"license": "MIT",
@ -12,7 +12,7 @@
"compiler_flags": "-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32",
"source": {
"git": "https://github.com/facebook/react-native.git",
"tag": "v0.63.1"
"tag": "v0.63.2"
},
"source_files": "**/*.{c,h,m,mm,cpp}",
"header_dir": "RCTTypeSafety",
@ -23,16 +23,16 @@
},
"dependencies": {
"FBLazyVector": [
"0.63.1"
"0.63.2"
],
"Folly": [
"2020.01.13.00"
],
"RCTRequired": [
"0.63.1"
"0.63.2"
],
"React-Core": [
"0.63.1"
"0.63.2"
]
}
}

View File

@ -1,6 +1,6 @@
{
"name": "RNFastImage",
"version": "8.1.5",
"version": "8.2.0",
"summary": "🚩 FastImage, performant React Native image component.",
"authors": {
"Dylan Vann": "dylan@dylanvann.com"
@ -15,7 +15,7 @@
"requires_arc": true,
"source": {
"git": "https://github.com/DylanVann/react-native-fast-image.git",
"tag": "v8.1.5"
"tag": "v8.2.0"
},
"source_files": "ios/**/*.{h,m}",
"dependencies": {

View File

@ -1,6 +1,6 @@
{
"name": "React-Core",
"version": "0.63.1",
"version": "0.63.2",
"summary": "The core of React Native.",
"homepage": "https://reactnative.dev/",
"license": "MIT",
@ -11,7 +11,7 @@
},
"source": {
"git": "https://github.com/facebook/react-native.git",
"tag": "v0.63.1"
"tag": "v0.63.2"
},
"resource_bundles": {
"AccessibilityResources": [
@ -34,13 +34,13 @@
"2020.01.13.00"
],
"React-cxxreact": [
"0.63.1"
"0.63.2"
],
"React-jsi": [
"0.63.1"
"0.63.2"
],
"React-jsiexecutor": [
"0.63.1"
"0.63.2"
],
"Yoga": [
@ -83,13 +83,13 @@
],
"dependencies": {
"React-Core/Default": [
"0.63.1"
"0.63.2"
],
"React-Core/RCTWebSocket": [
"0.63.1"
"0.63.2"
],
"React-jsinspector": [
"0.63.1"
"0.63.2"
]
}
},
@ -98,7 +98,7 @@
"source_files": "Libraries/WebSocket/*.{h,m}",
"dependencies": {
"React-Core/Default": [
"0.63.1"
"0.63.2"
]
}
},

View File

@ -1,6 +1,6 @@
{
"name": "React-CoreModules",
"version": "0.63.1",
"version": "0.63.2",
"summary": "-",
"homepage": "https://reactnative.dev/",
"license": "MIT",
@ -12,7 +12,7 @@
"compiler_flags": "-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32 -Wno-nullability-completeness",
"source": {
"git": "https://github.com/facebook/react-native.git",
"tag": "v0.63.1"
"tag": "v0.63.2"
},
"source_files": "**/*.{c,m,mm,cpp}",
"header_dir": "CoreModules",
@ -23,25 +23,25 @@
},
"dependencies": {
"FBReactNativeSpec": [
"0.63.1"
"0.63.2"
],
"Folly": [
"2020.01.13.00"
],
"RCTTypeSafety": [
"0.63.1"
"0.63.2"
],
"React-Core/CoreModulesHeaders": [
"0.63.1"
"0.63.2"
],
"React-RCTImage": [
"0.63.1"
"0.63.2"
],
"ReactCommon/turbomodule/core": [
"0.63.1"
"0.63.2"
],
"React-jsi": [
"0.63.1"
"0.63.2"
]
}
}

View File

@ -1,6 +1,6 @@
{
"name": "React-RCTActionSheet",
"version": "0.63.1",
"version": "0.63.2",
"summary": "An API for displaying iOS action sheets and share sheets.",
"homepage": "https://reactnative.dev/",
"documentation_url": "https://reactnative.dev/docs/actionsheetios",
@ -12,7 +12,7 @@
},
"source": {
"git": "https://github.com/facebook/react-native.git",
"tag": "v0.63.1"
"tag": "v0.63.2"
},
"source_files": "*.{m}",
"preserve_paths": [
@ -23,7 +23,7 @@
"header_dir": "RCTActionSheet",
"dependencies": {
"React-Core/RCTActionSheetHeaders": [
"0.63.1"
"0.63.2"
]
}
}

View File

@ -1,6 +1,6 @@
{
"name": "React-RCTAnimation",
"version": "0.63.1",
"version": "0.63.2",
"summary": "A native driver for the Animated API.",
"homepage": "https://reactnative.dev/",
"license": "MIT",
@ -12,7 +12,7 @@
"compiler_flags": "-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32 -Wno-nullability-completeness",
"source": {
"git": "https://github.com/facebook/react-native.git",
"tag": "v0.63.1"
"tag": "v0.63.2"
},
"source_files": "{Drivers/*,Nodes/*,*}.{m,mm}",
"preserve_paths": [
@ -31,19 +31,19 @@
"2020.01.13.00"
],
"RCTTypeSafety": [
"0.63.1"
"0.63.2"
],
"ReactCommon/turbomodule/core": [
"0.63.1"
"0.63.2"
],
"React-jsi": [
"0.63.1"
"0.63.2"
],
"FBReactNativeSpec": [
"0.63.1"
"0.63.2"
],
"React-Core/RCTAnimationHeaders": [
"0.63.1"
"0.63.2"
]
}
}

View File

@ -1,6 +1,6 @@
{
"name": "React-RCTBlob",
"version": "0.63.1",
"version": "0.63.2",
"summary": "An API for displaying iOS action sheets and share sheets.",
"homepage": "https://reactnative.dev/",
"license": "MIT",
@ -12,7 +12,7 @@
"compiler_flags": "-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32 -Wno-nullability-completeness",
"source": {
"git": "https://github.com/facebook/react-native.git",
"tag": "v0.63.1"
"tag": "v0.63.2"
},
"source_files": "*.{m,mm}",
"preserve_paths": [
@ -31,22 +31,22 @@
"2020.01.13.00"
],
"FBReactNativeSpec": [
"0.63.1"
"0.63.2"
],
"ReactCommon/turbomodule/core": [
"0.63.1"
"0.63.2"
],
"React-jsi": [
"0.63.1"
"0.63.2"
],
"React-Core/RCTBlobHeaders": [
"0.63.1"
"0.63.2"
],
"React-Core/RCTWebSocket": [
"0.63.1"
"0.63.2"
],
"React-RCTNetwork": [
"0.63.1"
"0.63.2"
]
}
}

View File

@ -1,6 +1,6 @@
{
"name": "React-RCTImage",
"version": "0.63.1",
"version": "0.63.2",
"summary": "A React component for displaying different types of images.",
"homepage": "https://reactnative.dev/",
"documentation_url": "https://reactnative.dev/docs/image",
@ -13,7 +13,7 @@
"compiler_flags": "-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32 -Wno-nullability-completeness",
"source": {
"git": "https://github.com/facebook/react-native.git",
"tag": "v0.63.1"
"tag": "v0.63.2"
},
"source_files": "*.{m,mm}",
"preserve_paths": [
@ -32,22 +32,22 @@
"2020.01.13.00"
],
"FBReactNativeSpec": [
"0.63.1"
"0.63.2"
],
"RCTTypeSafety": [
"0.63.1"
"0.63.2"
],
"ReactCommon/turbomodule/core": [
"0.63.1"
"0.63.2"
],
"React-jsi": [
"0.63.1"
"0.63.2"
],
"React-Core/RCTImageHeaders": [
"0.63.1"
"0.63.2"
],
"React-RCTNetwork": [
"0.63.1"
"0.63.2"
]
}
}

View File

@ -1,6 +1,6 @@
{
"name": "React-RCTLinking",
"version": "0.63.1",
"version": "0.63.2",
"summary": "A general interface to interact with both incoming and outgoing app links.",
"homepage": "https://reactnative.dev/",
"documentation_url": "https://reactnative.dev/docs/linking",
@ -13,7 +13,7 @@
"compiler_flags": "-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32 -Wno-nullability-completeness",
"source": {
"git": "https://github.com/facebook/react-native.git",
"tag": "v0.63.1"
"tag": "v0.63.2"
},
"source_files": "*.{m,mm}",
"preserve_paths": [
@ -29,16 +29,16 @@
},
"dependencies": {
"FBReactNativeSpec": [
"0.63.1"
"0.63.2"
],
"React-Core/RCTLinkingHeaders": [
"0.63.1"
"0.63.2"
],
"ReactCommon/turbomodule/core": [
"0.63.1"
"0.63.2"
],
"React-jsi": [
"0.63.1"
"0.63.2"
]
}
}

View File

@ -1,6 +1,6 @@
{
"name": "React-RCTNetwork",
"version": "0.63.1",
"version": "0.63.2",
"summary": "The networking library of React Native.",
"homepage": "https://reactnative.dev/",
"license": "MIT",
@ -12,7 +12,7 @@
"compiler_flags": "-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32 -Wno-nullability-completeness",
"source": {
"git": "https://github.com/facebook/react-native.git",
"tag": "v0.63.1"
"tag": "v0.63.2"
},
"source_files": "*.{m,mm}",
"preserve_paths": [
@ -32,19 +32,19 @@
"2020.01.13.00"
],
"FBReactNativeSpec": [
"0.63.1"
"0.63.2"
],
"RCTTypeSafety": [
"0.63.1"
"0.63.2"
],
"ReactCommon/turbomodule/core": [
"0.63.1"
"0.63.2"
],
"React-jsi": [
"0.63.1"
"0.63.2"
],
"React-Core/RCTNetworkHeaders": [
"0.63.1"
"0.63.2"
]
}
}

View File

@ -1,6 +1,6 @@
{
"name": "React-RCTSettings",
"version": "0.63.1",
"version": "0.63.2",
"summary": "A wrapper for NSUserDefaults, a persistent key-value store available only on iOS.",
"homepage": "https://reactnative.dev/",
"documentation_url": "https://reactnative.dev/docs/settings",
@ -13,7 +13,7 @@
"compiler_flags": "-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32 -Wno-nullability-completeness",
"source": {
"git": "https://github.com/facebook/react-native.git",
"tag": "v0.63.1"
"tag": "v0.63.2"
},
"source_files": "*.{m,mm}",
"preserve_paths": [
@ -32,19 +32,19 @@
"2020.01.13.00"
],
"FBReactNativeSpec": [
"0.63.1"
"0.63.2"
],
"RCTTypeSafety": [
"0.63.1"
"0.63.2"
],
"ReactCommon/turbomodule/core": [
"0.63.1"
"0.63.2"
],
"React-jsi": [
"0.63.1"
"0.63.2"
],
"React-Core/RCTSettingsHeaders": [
"0.63.1"
"0.63.2"
]
}
}

View File

@ -1,6 +1,6 @@
{
"name": "React-RCTText",
"version": "0.63.1",
"version": "0.63.2",
"summary": "A React component for displaying text.",
"homepage": "https://reactnative.dev/",
"documentation_url": "https://reactnative.dev/docs/text",
@ -12,7 +12,7 @@
},
"source": {
"git": "https://github.com/facebook/react-native.git",
"tag": "v0.63.1"
"tag": "v0.63.2"
},
"source_files": "**/*.{h,m}",
"preserve_paths": [
@ -23,7 +23,7 @@
"header_dir": "RCTText",
"dependencies": {
"React-Core/RCTTextHeaders": [
"0.63.1"
"0.63.2"
]
}
}

View File

@ -1,6 +1,6 @@
{
"name": "React-RCTVibration",
"version": "0.63.1",
"version": "0.63.2",
"summary": "An API for controlling the vibration hardware of the device.",
"homepage": "https://reactnative.dev/",
"documentation_url": "https://reactnative.dev/docs/vibration",
@ -13,7 +13,7 @@
"compiler_flags": "-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32 -Wno-nullability-completeness",
"source": {
"git": "https://github.com/facebook/react-native.git",
"tag": "v0.63.1"
"tag": "v0.63.2"
},
"source_files": "*.{m,mm}",
"preserve_paths": [
@ -33,16 +33,16 @@
"2020.01.13.00"
],
"FBReactNativeSpec": [
"0.63.1"
"0.63.2"
],
"ReactCommon/turbomodule/core": [
"0.63.1"
"0.63.2"
],
"React-jsi": [
"0.63.1"
"0.63.2"
],
"React-Core/RCTVibrationHeaders": [
"0.63.1"
"0.63.2"
]
}
}

View File

@ -1,6 +1,6 @@
{
"name": "React-callinvoker",
"version": "0.63.1",
"version": "0.63.2",
"summary": "-",
"homepage": "https://reactnative.dev/",
"license": "MIT",
@ -11,7 +11,7 @@
},
"source": {
"git": "https://github.com/facebook/react-native.git",
"tag": "v0.63.1"
"tag": "v0.63.2"
},
"source_files": "**/*.{cpp,h}",
"header_dir": "ReactCommon"

View File

@ -1,6 +1,6 @@
{
"name": "React-cxxreact",
"version": "0.63.1",
"version": "0.63.2",
"summary": "-",
"homepage": "https://reactnative.dev/",
"license": "MIT",
@ -11,7 +11,7 @@
},
"source": {
"git": "https://github.com/facebook/react-native.git",
"tag": "v0.63.1"
"tag": "v0.63.2"
},
"source_files": "*.{cpp,h}",
"exclude_files": "SampleCxxModule.*",
@ -34,10 +34,10 @@
],
"React-jsinspector": [
"0.63.1"
"0.63.2"
],
"React-callinvoker": [
"0.63.1"
"0.63.2"
]
}
}

View File

@ -1,6 +1,6 @@
{
"name": "React-jsi",
"version": "0.63.1",
"version": "0.63.2",
"summary": "-",
"homepage": "https://reactnative.dev/",
"license": "MIT",
@ -11,7 +11,7 @@
},
"source": {
"git": "https://github.com/facebook/react-native.git",
"tag": "v0.63.1"
"tag": "v0.63.2"
},
"source_files": "**/*.{cpp,h}",
"exclude_files": "**/test/*",

View File

@ -1,6 +1,6 @@
{
"name": "React-jsiexecutor",
"version": "0.63.1",
"version": "0.63.2",
"summary": "-",
"homepage": "https://reactnative.dev/",
"license": "MIT",
@ -11,7 +11,7 @@
},
"source": {
"git": "https://github.com/facebook/react-native.git",
"tag": "v0.63.1"
"tag": "v0.63.2"
},
"source_files": "jsireact/*.{cpp,h}",
"compiler_flags": "-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32 -Wno-documentation",
@ -21,10 +21,10 @@
"header_dir": "jsireact",
"dependencies": {
"React-cxxreact": [
"0.63.1"
"0.63.2"
],
"React-jsi": [
"0.63.1"
"0.63.2"
],
"Folly": [
"2020.01.13.00"

View File

@ -1,6 +1,6 @@
{
"name": "React-jsinspector",
"version": "0.63.1",
"version": "0.63.2",
"summary": "-",
"homepage": "https://reactnative.dev/",
"license": "MIT",
@ -11,7 +11,7 @@
},
"source": {
"git": "https://github.com/facebook/react-native.git",
"tag": "v0.63.1"
"tag": "v0.63.2"
},
"source_files": "*.{cpp,h}",
"header_dir": "jsinspector"

View File

@ -1,6 +1,6 @@
{
"name": "React",
"version": "0.63.1",
"version": "0.63.2",
"summary": "A framework for building native apps using React",
"description": "React Native apps are built using the React JS\nframework, and render directly to native UIKit\nelements using a fully asynchronous architecture.\nThere is no browser and no HTML. We have picked what\nwe think is the best set of features from these and\nother technologies to build what we hope to become\nthe best product development framework available,\nwith an emphasis on iteration speed, developer\ndelight, continuity of technology, and absolutely\nbeautiful and fast products with no compromises in\nquality or capability.",
"homepage": "https://reactnative.dev/",
@ -12,7 +12,7 @@
},
"source": {
"git": "https://github.com/facebook/react-native.git",
"tag": "v0.63.1"
"tag": "v0.63.2"
},
"preserve_paths": [
"package.json",
@ -22,40 +22,40 @@
"cocoapods_version": ">= 1.2.0",
"dependencies": {
"React-Core": [
"0.63.1"
"0.63.2"
],
"React-Core/DevSupport": [
"0.63.1"
"0.63.2"
],
"React-Core/RCTWebSocket": [
"0.63.1"
"0.63.2"
],
"React-RCTActionSheet": [
"0.63.1"
"0.63.2"
],
"React-RCTAnimation": [
"0.63.1"
"0.63.2"
],
"React-RCTBlob": [
"0.63.1"
"0.63.2"
],
"React-RCTImage": [
"0.63.1"
"0.63.2"
],
"React-RCTLinking": [
"0.63.1"
"0.63.2"
],
"React-RCTNetwork": [
"0.63.1"
"0.63.2"
],
"React-RCTSettings": [
"0.63.1"
"0.63.2"
],
"React-RCTText": [
"0.63.1"
"0.63.2"
],
"React-RCTVibration": [
"0.63.1"
"0.63.2"
]
}
}

View File

@ -1,7 +1,7 @@
{
"name": "ReactCommon",
"module_name": "ReactCommon",
"version": "0.63.1",
"version": "0.63.2",
"summary": "-",
"homepage": "https://reactnative.dev/",
"license": "MIT",
@ -12,7 +12,7 @@
},
"source": {
"git": "https://github.com/facebook/react-native.git",
"tag": "v0.63.1"
"tag": "v0.63.2"
},
"header_dir": "ReactCommon",
"compiler_flags": "-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32 -Wno-documentation",
@ -26,16 +26,16 @@
"name": "turbomodule",
"dependencies": {
"React-callinvoker": [
"0.63.1"
"0.63.2"
],
"React-Core": [
"0.63.1"
"0.63.2"
],
"React-cxxreact": [
"0.63.1"
"0.63.2"
],
"React-jsi": [
"0.63.1"
"0.63.2"
],
"Folly": [
"2020.01.13.00"
@ -63,7 +63,7 @@
],
"dependencies": {
"ReactCommon/turbomodule/core": [
"0.63.1"
"0.63.2"
]
}
}

View File

@ -11,7 +11,7 @@
"authors": "Facebook",
"source": {
"git": "https://github.com/facebook/react-native.git",
"tag": "v0.63.1"
"tag": "v0.63.2"
},
"module_name": "yoga",
"header_dir": "yoga",

360
ios/Pods/Manifest.lock generated
View File

@ -39,14 +39,14 @@ PODS:
- UMFileSystemInterface
- EXWebBrowser (8.3.1):
- UMCore
- FBLazyVector (0.63.1)
- FBReactNativeSpec (0.63.1):
- FBLazyVector (0.63.2)
- FBReactNativeSpec (0.63.2):
- Folly (= 2020.01.13.00)
- RCTRequired (= 0.63.1)
- RCTTypeSafety (= 0.63.1)
- React-Core (= 0.63.1)
- React-jsi (= 0.63.1)
- ReactCommon/turbomodule/core (= 0.63.1)
- RCTRequired (= 0.63.2)
- RCTTypeSafety (= 0.63.2)
- React-Core (= 0.63.2)
- React-jsi (= 0.63.2)
- ReactCommon/turbomodule/core (= 0.63.2)
- Firebase/Analytics (6.27.1):
- Firebase/Core
- Firebase/Core (6.27.1):
@ -196,172 +196,172 @@ PODS:
- OpenSSL-Universal/Static (= 1.0.2.19)
- OpenSSL-Universal/Static (1.0.2.19)
- PromisesObjC (1.2.9)
- RCTRequired (0.63.1)
- RCTTypeSafety (0.63.1):
- FBLazyVector (= 0.63.1)
- RCTRequired (0.63.2)
- RCTTypeSafety (0.63.2):
- FBLazyVector (= 0.63.2)
- Folly (= 2020.01.13.00)
- RCTRequired (= 0.63.1)
- React-Core (= 0.63.1)
- React (0.63.1):
- React-Core (= 0.63.1)
- React-Core/DevSupport (= 0.63.1)
- React-Core/RCTWebSocket (= 0.63.1)
- React-RCTActionSheet (= 0.63.1)
- React-RCTAnimation (= 0.63.1)
- React-RCTBlob (= 0.63.1)
- React-RCTImage (= 0.63.1)
- React-RCTLinking (= 0.63.1)
- React-RCTNetwork (= 0.63.1)
- React-RCTSettings (= 0.63.1)
- React-RCTText (= 0.63.1)
- React-RCTVibration (= 0.63.1)
- React-callinvoker (0.63.1)
- React-Core (0.63.1):
- RCTRequired (= 0.63.2)
- React-Core (= 0.63.2)
- React (0.63.2):
- React-Core (= 0.63.2)
- React-Core/DevSupport (= 0.63.2)
- React-Core/RCTWebSocket (= 0.63.2)
- React-RCTActionSheet (= 0.63.2)
- React-RCTAnimation (= 0.63.2)
- React-RCTBlob (= 0.63.2)
- React-RCTImage (= 0.63.2)
- React-RCTLinking (= 0.63.2)
- React-RCTNetwork (= 0.63.2)
- React-RCTSettings (= 0.63.2)
- React-RCTText (= 0.63.2)
- React-RCTVibration (= 0.63.2)
- React-callinvoker (0.63.2)
- React-Core (0.63.2):
- Folly (= 2020.01.13.00)
- glog
- React-Core/Default (= 0.63.1)
- React-cxxreact (= 0.63.1)
- React-jsi (= 0.63.1)
- React-jsiexecutor (= 0.63.1)
- React-Core/Default (= 0.63.2)
- React-cxxreact (= 0.63.2)
- React-jsi (= 0.63.2)
- React-jsiexecutor (= 0.63.2)
- Yoga
- React-Core/CoreModulesHeaders (0.63.1):
- React-Core/CoreModulesHeaders (0.63.2):
- Folly (= 2020.01.13.00)
- glog
- React-Core/Default
- React-cxxreact (= 0.63.1)
- React-jsi (= 0.63.1)
- React-jsiexecutor (= 0.63.1)
- React-cxxreact (= 0.63.2)
- React-jsi (= 0.63.2)
- React-jsiexecutor (= 0.63.2)
- Yoga
- React-Core/Default (0.63.1):
- React-Core/Default (0.63.2):
- Folly (= 2020.01.13.00)
- glog
- React-cxxreact (= 0.63.1)
- React-jsi (= 0.63.1)
- React-jsiexecutor (= 0.63.1)
- React-cxxreact (= 0.63.2)
- React-jsi (= 0.63.2)
- React-jsiexecutor (= 0.63.2)
- Yoga
- React-Core/DevSupport (0.63.1):
- React-Core/DevSupport (0.63.2):
- Folly (= 2020.01.13.00)
- glog
- React-Core/Default (= 0.63.1)
- React-Core/RCTWebSocket (= 0.63.1)
- React-cxxreact (= 0.63.1)
- React-jsi (= 0.63.1)
- React-jsiexecutor (= 0.63.1)
- React-jsinspector (= 0.63.1)
- React-Core/Default (= 0.63.2)
- React-Core/RCTWebSocket (= 0.63.2)
- React-cxxreact (= 0.63.2)
- React-jsi (= 0.63.2)
- React-jsiexecutor (= 0.63.2)
- React-jsinspector (= 0.63.2)
- Yoga
- React-Core/RCTActionSheetHeaders (0.63.1):
- React-Core/RCTActionSheetHeaders (0.63.2):
- Folly (= 2020.01.13.00)
- glog
- React-Core/Default
- React-cxxreact (= 0.63.1)
- React-jsi (= 0.63.1)
- React-jsiexecutor (= 0.63.1)
- React-cxxreact (= 0.63.2)
- React-jsi (= 0.63.2)
- React-jsiexecutor (= 0.63.2)
- Yoga
- React-Core/RCTAnimationHeaders (0.63.1):
- React-Core/RCTAnimationHeaders (0.63.2):
- Folly (= 2020.01.13.00)
- glog
- React-Core/Default
- React-cxxreact (= 0.63.1)
- React-jsi (= 0.63.1)
- React-jsiexecutor (= 0.63.1)
- React-cxxreact (= 0.63.2)
- React-jsi (= 0.63.2)
- React-jsiexecutor (= 0.63.2)
- Yoga
- React-Core/RCTBlobHeaders (0.63.1):
- React-Core/RCTBlobHeaders (0.63.2):
- Folly (= 2020.01.13.00)
- glog
- React-Core/Default
- React-cxxreact (= 0.63.1)
- React-jsi (= 0.63.1)
- React-jsiexecutor (= 0.63.1)
- React-cxxreact (= 0.63.2)
- React-jsi (= 0.63.2)
- React-jsiexecutor (= 0.63.2)
- Yoga
- React-Core/RCTImageHeaders (0.63.1):
- React-Core/RCTImageHeaders (0.63.2):
- Folly (= 2020.01.13.00)
- glog
- React-Core/Default
- React-cxxreact (= 0.63.1)
- React-jsi (= 0.63.1)
- React-jsiexecutor (= 0.63.1)
- React-cxxreact (= 0.63.2)
- React-jsi (= 0.63.2)
- React-jsiexecutor (= 0.63.2)
- Yoga
- React-Core/RCTLinkingHeaders (0.63.1):
- React-Core/RCTLinkingHeaders (0.63.2):
- Folly (= 2020.01.13.00)
- glog
- React-Core/Default
- React-cxxreact (= 0.63.1)
- React-jsi (= 0.63.1)
- React-jsiexecutor (= 0.63.1)
- React-cxxreact (= 0.63.2)
- React-jsi (= 0.63.2)
- React-jsiexecutor (= 0.63.2)
- Yoga
- React-Core/RCTNetworkHeaders (0.63.1):
- React-Core/RCTNetworkHeaders (0.63.2):
- Folly (= 2020.01.13.00)
- glog
- React-Core/Default
- React-cxxreact (= 0.63.1)
- React-jsi (= 0.63.1)
- React-jsiexecutor (= 0.63.1)
- React-cxxreact (= 0.63.2)
- React-jsi (= 0.63.2)
- React-jsiexecutor (= 0.63.2)
- Yoga
- React-Core/RCTSettingsHeaders (0.63.1):
- React-Core/RCTSettingsHeaders (0.63.2):
- Folly (= 2020.01.13.00)
- glog
- React-Core/Default
- React-cxxreact (= 0.63.1)
- React-jsi (= 0.63.1)
- React-jsiexecutor (= 0.63.1)
- React-cxxreact (= 0.63.2)
- React-jsi (= 0.63.2)
- React-jsiexecutor (= 0.63.2)
- Yoga
- React-Core/RCTTextHeaders (0.63.1):
- React-Core/RCTTextHeaders (0.63.2):
- Folly (= 2020.01.13.00)
- glog
- React-Core/Default
- React-cxxreact (= 0.63.1)
- React-jsi (= 0.63.1)
- React-jsiexecutor (= 0.63.1)
- React-cxxreact (= 0.63.2)
- React-jsi (= 0.63.2)
- React-jsiexecutor (= 0.63.2)
- Yoga
- React-Core/RCTVibrationHeaders (0.63.1):
- React-Core/RCTVibrationHeaders (0.63.2):
- Folly (= 2020.01.13.00)
- glog
- React-Core/Default
- React-cxxreact (= 0.63.1)
- React-jsi (= 0.63.1)
- React-jsiexecutor (= 0.63.1)
- React-cxxreact (= 0.63.2)
- React-jsi (= 0.63.2)
- React-jsiexecutor (= 0.63.2)
- Yoga
- React-Core/RCTWebSocket (0.63.1):
- React-Core/RCTWebSocket (0.63.2):
- Folly (= 2020.01.13.00)
- glog
- React-Core/Default (= 0.63.1)
- React-cxxreact (= 0.63.1)
- React-jsi (= 0.63.1)
- React-jsiexecutor (= 0.63.1)
- React-Core/Default (= 0.63.2)
- React-cxxreact (= 0.63.2)
- React-jsi (= 0.63.2)
- React-jsiexecutor (= 0.63.2)
- Yoga
- React-CoreModules (0.63.1):
- FBReactNativeSpec (= 0.63.1)
- React-CoreModules (0.63.2):
- FBReactNativeSpec (= 0.63.2)
- Folly (= 2020.01.13.00)
- RCTTypeSafety (= 0.63.1)
- React-Core/CoreModulesHeaders (= 0.63.1)
- React-jsi (= 0.63.1)
- React-RCTImage (= 0.63.1)
- ReactCommon/turbomodule/core (= 0.63.1)
- React-cxxreact (0.63.1):
- RCTTypeSafety (= 0.63.2)
- React-Core/CoreModulesHeaders (= 0.63.2)
- React-jsi (= 0.63.2)
- React-RCTImage (= 0.63.2)
- ReactCommon/turbomodule/core (= 0.63.2)
- React-cxxreact (0.63.2):
- boost-for-react-native (= 1.63.0)
- DoubleConversion
- Folly (= 2020.01.13.00)
- glog
- React-callinvoker (= 0.63.1)
- React-jsinspector (= 0.63.1)
- React-jsi (0.63.1):
- React-callinvoker (= 0.63.2)
- React-jsinspector (= 0.63.2)
- React-jsi (0.63.2):
- boost-for-react-native (= 1.63.0)
- DoubleConversion
- Folly (= 2020.01.13.00)
- glog
- React-jsi/Default (= 0.63.1)
- React-jsi/Default (0.63.1):
- React-jsi/Default (= 0.63.2)
- React-jsi/Default (0.63.2):
- boost-for-react-native (= 1.63.0)
- DoubleConversion
- Folly (= 2020.01.13.00)
- glog
- React-jsiexecutor (0.63.1):
- React-jsiexecutor (0.63.2):
- DoubleConversion
- Folly (= 2020.01.13.00)
- glog
- React-cxxreact (= 0.63.1)
- React-jsi (= 0.63.1)
- React-jsinspector (0.63.1)
- React-cxxreact (= 0.63.2)
- React-jsi (= 0.63.2)
- React-jsinspector (0.63.2)
- react-native-appearance (0.3.4):
- React
- react-native-background-timer (2.2.0):
@ -391,66 +391,66 @@ PODS:
- React
- react-native-webview (10.3.2):
- React
- React-RCTActionSheet (0.63.1):
- React-Core/RCTActionSheetHeaders (= 0.63.1)
- React-RCTAnimation (0.63.1):
- FBReactNativeSpec (= 0.63.1)
- React-RCTActionSheet (0.63.2):
- React-Core/RCTActionSheetHeaders (= 0.63.2)
- React-RCTAnimation (0.63.2):
- FBReactNativeSpec (= 0.63.2)
- Folly (= 2020.01.13.00)
- RCTTypeSafety (= 0.63.1)
- React-Core/RCTAnimationHeaders (= 0.63.1)
- React-jsi (= 0.63.1)
- ReactCommon/turbomodule/core (= 0.63.1)
- React-RCTBlob (0.63.1):
- FBReactNativeSpec (= 0.63.1)
- RCTTypeSafety (= 0.63.2)
- React-Core/RCTAnimationHeaders (= 0.63.2)
- React-jsi (= 0.63.2)
- ReactCommon/turbomodule/core (= 0.63.2)
- React-RCTBlob (0.63.2):
- FBReactNativeSpec (= 0.63.2)
- Folly (= 2020.01.13.00)
- React-Core/RCTBlobHeaders (= 0.63.1)
- React-Core/RCTWebSocket (= 0.63.1)
- React-jsi (= 0.63.1)
- React-RCTNetwork (= 0.63.1)
- ReactCommon/turbomodule/core (= 0.63.1)
- React-RCTImage (0.63.1):
- FBReactNativeSpec (= 0.63.1)
- React-Core/RCTBlobHeaders (= 0.63.2)
- React-Core/RCTWebSocket (= 0.63.2)
- React-jsi (= 0.63.2)
- React-RCTNetwork (= 0.63.2)
- ReactCommon/turbomodule/core (= 0.63.2)
- React-RCTImage (0.63.2):
- FBReactNativeSpec (= 0.63.2)
- Folly (= 2020.01.13.00)
- RCTTypeSafety (= 0.63.1)
- React-Core/RCTImageHeaders (= 0.63.1)
- React-jsi (= 0.63.1)
- React-RCTNetwork (= 0.63.1)
- ReactCommon/turbomodule/core (= 0.63.1)
- React-RCTLinking (0.63.1):
- FBReactNativeSpec (= 0.63.1)
- React-Core/RCTLinkingHeaders (= 0.63.1)
- React-jsi (= 0.63.1)
- ReactCommon/turbomodule/core (= 0.63.1)
- React-RCTNetwork (0.63.1):
- FBReactNativeSpec (= 0.63.1)
- RCTTypeSafety (= 0.63.2)
- React-Core/RCTImageHeaders (= 0.63.2)
- React-jsi (= 0.63.2)
- React-RCTNetwork (= 0.63.2)
- ReactCommon/turbomodule/core (= 0.63.2)
- React-RCTLinking (0.63.2):
- FBReactNativeSpec (= 0.63.2)
- React-Core/RCTLinkingHeaders (= 0.63.2)
- React-jsi (= 0.63.2)
- ReactCommon/turbomodule/core (= 0.63.2)
- React-RCTNetwork (0.63.2):
- FBReactNativeSpec (= 0.63.2)
- Folly (= 2020.01.13.00)
- RCTTypeSafety (= 0.63.1)
- React-Core/RCTNetworkHeaders (= 0.63.1)
- React-jsi (= 0.63.1)
- ReactCommon/turbomodule/core (= 0.63.1)
- React-RCTSettings (0.63.1):
- FBReactNativeSpec (= 0.63.1)
- RCTTypeSafety (= 0.63.2)
- React-Core/RCTNetworkHeaders (= 0.63.2)
- React-jsi (= 0.63.2)
- ReactCommon/turbomodule/core (= 0.63.2)
- React-RCTSettings (0.63.2):
- FBReactNativeSpec (= 0.63.2)
- Folly (= 2020.01.13.00)
- RCTTypeSafety (= 0.63.1)
- React-Core/RCTSettingsHeaders (= 0.63.1)
- React-jsi (= 0.63.1)
- ReactCommon/turbomodule/core (= 0.63.1)
- React-RCTText (0.63.1):
- React-Core/RCTTextHeaders (= 0.63.1)
- React-RCTVibration (0.63.1):
- FBReactNativeSpec (= 0.63.1)
- RCTTypeSafety (= 0.63.2)
- React-Core/RCTSettingsHeaders (= 0.63.2)
- React-jsi (= 0.63.2)
- ReactCommon/turbomodule/core (= 0.63.2)
- React-RCTText (0.63.2):
- React-Core/RCTTextHeaders (= 0.63.2)
- React-RCTVibration (0.63.2):
- FBReactNativeSpec (= 0.63.2)
- Folly (= 2020.01.13.00)
- React-Core/RCTVibrationHeaders (= 0.63.1)
- React-jsi (= 0.63.1)
- ReactCommon/turbomodule/core (= 0.63.1)
- ReactCommon/turbomodule/core (0.63.1):
- React-Core/RCTVibrationHeaders (= 0.63.2)
- React-jsi (= 0.63.2)
- ReactCommon/turbomodule/core (= 0.63.2)
- ReactCommon/turbomodule/core (0.63.2):
- DoubleConversion
- Folly (= 2020.01.13.00)
- glog
- React-callinvoker (= 0.63.1)
- React-Core (= 0.63.1)
- React-cxxreact (= 0.63.1)
- React-jsi (= 0.63.1)
- React-callinvoker (= 0.63.2)
- React-Core (= 0.63.2)
- React-cxxreact (= 0.63.2)
- React-jsi (= 0.63.2)
- ReactNativeART (1.2.0):
- React
- ReactNativeKeyboardInput (6.0.0):
@ -473,7 +473,7 @@ PODS:
- React
- RNDeviceInfo (5.6.2):
- React
- RNFastImage (8.1.5):
- RNFastImage (8.2.0):
- React
- SDWebImage (~> 5.0)
- SDWebImageWebPCoder (~> 0.4.1)
@ -882,8 +882,8 @@ SPEC CHECKSUMS:
EXPermissions: 80ac3acbdb145930079810fe5b08c022b3428aa8
EXVideoThumbnails: f70bdc5511749f3181028f5000bcb7be203c631d
EXWebBrowser: d37a5ffdea1b65947352bc001dd9f732463725d4
FBLazyVector: a50434c875bd42f2b1c99c712bda892a1dc659c7
FBReactNativeSpec: 393853a536428e05a9da00b6290042f09809b15b
FBLazyVector: 3ef4a7f62e7db01092f9d517d2ebc0d0677c4a37
FBReactNativeSpec: dc7fa9088f0f2a998503a352b0554d69a4391c5a
Firebase: 919186c8e119dd9372a45fd1dd17a8a942bc1892
FirebaseAnalytics: 5fa308e1b13f838d0f6dc74719ac2a72e8c5afc4
FirebaseCore: 8cd4f8ea22075e0ee582849b1cf79d8816506085
@ -911,16 +911,16 @@ SPEC CHECKSUMS:
nanopb: c43f40fadfe79e8b8db116583945847910cbabc9
OpenSSL-Universal: 8b48cc0d10c1b2923617dfe5c178aa9ed2689355
PromisesObjC: b48e0338dbbac2207e611750777895f7a5811b75
RCTRequired: d9b1a9e6fa097744ca3ede59f86a35096df7202b
RCTTypeSafety: c227cd061983e9e964115afbc4e8730d6a6f1395
React: 86e972a20967ee4137aa19dc48319405927c2e94
React-callinvoker: 87ee376c25277d74e164ff036b27084e343f3e69
React-Core: f5ec03baf7ed58d9f3ee04a8f84e4c97ee8bf4c9
React-CoreModules: 958898aa8c069280e866e35a2f29480a81fcf335
React-cxxreact: 90de76b9b51575668ad7fd4e33a5a8c143beecc2
React-jsi: b32a31da32e030f30bbf9a8d3a9c8325df9e793f
React-jsiexecutor: 7ab9cdcdd18d57652fb041f8a147fe9658d4e00a
React-jsinspector: 2e28bb487e42dda6c94dbfa0c648d1343767a0fb
RCTRequired: f13f25e7b12f925f1f6a6a8c69d929a03c0129fe
RCTTypeSafety: 44982c5c8e43ff4141eb519a8ddc88059acd1f3a
React: e1c65dd41cb9db13b99f24608e47dd595f28ca9a
React-callinvoker: 552a6a6bc8b3bb794cf108ad59e5a9e2e3b4fc98
React-Core: 9d341e725dc9cd2f49e4c49ad1fc4e8776aa2639
React-CoreModules: 5335e168165da7f7083ce7147768d36d3e292318
React-cxxreact: d3261ec5f7d11743fbf21e263a34ea51d1f13ebc
React-jsi: 54245e1d5f4b690dec614a73a3795964eeef13a8
React-jsiexecutor: 8ca588cc921e70590820ce72b8789b02c67cce38
React-jsinspector: b14e62ebe7a66e9231e9581279909f2fc3db6606
react-native-appearance: 0f0e5fc2fcef70e03d48c8fe6b00b9158c2ba8aa
react-native-background-timer: 1f7d560647b40e6a60b01c452ba29c54bf581fc4
react-native-cameraroll: ae0a7c0cc8462508855707ff623b1e789b692865
@ -934,16 +934,16 @@ SPEC CHECKSUMS:
react-native-simple-crypto: 564740fd8124827d82e9e8ded4a0de8c695c8a4d
react-native-slider: 0221b417686c5957f6e77cd9ac22c1478a165355
react-native-webview: 679b6f400176e2ea8a785acf7ae16cf282e7d1eb
React-RCTActionSheet: 1702a1a85e550b5c36e2e03cb2bd3adea053de95
React-RCTAnimation: ddda576010a878865a4eab83a78acd92176ef6a1
React-RCTBlob: 34334384284c81577409d5205bd2b9ff594d8ab6
React-RCTImage: e2a661266dca295cffb33909cc64675a2efedb26
React-RCTLinking: cd39b9b5e9cbb9e827854e30dfa92d7db074cea8
React-RCTNetwork: 16939b7e4058d6f662b304a1f61689e249a2bfcc
React-RCTSettings: 24726a62de0c326f9ebfc3838898a501b87ce711
React-RCTText: 4f95d322b7e6da72817284abf8a2cdcec18b9cd8
React-RCTVibration: f3a9123c244f35c40d3c9f3ec3f0b9e5717bb292
ReactCommon: 2905859f84a94a381bb0d8dd3921ccb1a0047cb8
React-RCTActionSheet: 910163b6b09685a35c4ebbc52b66d1bfbbe39fc5
React-RCTAnimation: 9a883bbe1e9d2e158d4fb53765ed64c8dc2200c6
React-RCTBlob: 39cf0ece1927996c4466510e25d2105f67010e13
React-RCTImage: de355d738727b09ad3692f2a979affbd54b5f378
React-RCTLinking: 8122f221d395a63364b2c0078ce284214bd04575
React-RCTNetwork: 8f96c7b49ea6a0f28f98258f347b6ad218bc0830
React-RCTSettings: 8a49622aff9c1925f5455fa340b6fe4853d64ab6
React-RCTText: 1b6773e776e4b33f90468c20fe3b16ca3e224bb8
React-RCTVibration: 4d2e726957f4087449739b595f107c0d4b6c2d2d
ReactCommon: a0a1edbebcac5e91338371b72ffc66aa822792ce
ReactNativeART: 78edc68dd4a1e675338cd0cd113319cf3a65f2ab
ReactNativeKeyboardInput: c37e26821519869993b3b61844350feb9177ff37
ReactNativeKeyboardTrackingView: 02137fac3b2ebd330d74fa54ead48b14750a2306
@ -955,7 +955,7 @@ SPEC CHECKSUMS:
RNConfigReader: 396da6a6444182a76e8ae0930b9436c7575045cb
RNDateTimePicker: e386ff4ef3300964ed0cad97ce6f206e0effbfdb
RNDeviceInfo: ed8557a8bd6443cbc0ab5d375e6808a38a279744
RNFastImage: 35ae972d6727c84ee3f5c6897e07f84d0a3445e9
RNFastImage: f40d202ea2367239f71bc7cf11315f4bebab85b4
RNFBAnalytics: dae6d7b280ba61c96e1bbdd34aca3154388f025e
RNFBApp: 6fd8a7e757135d4168bf033a8812c241af7363a0
RNFBCrashlytics: 88de72c2476b5868a892d9523b89b86c527c540e
@ -982,7 +982,7 @@ SPEC CHECKSUMS:
UMReactNativeAdapter: 538efe92e781b5d7678cf95b34c46f2d0989a557
UMSensorsInterface: cb5bf31d52c4349f0ff9e3c049bbe4df0d80d383
UMTaskManagerInterface: 80653f25c55d9e6d79d6a0a65589fa213feaee11
Yoga: d5bd05a2b6b94c52323745c2c2b64557c8c66f64
Yoga: 7740b94929bbacbddda59bf115b5317e9a161598
YogaKit: f782866e155069a2cca2517aafea43200b01fd5a
PODFILE CHECKSUM: c38f9a91b5c154453863a4ee1ccc203da58ad2f2

File diff suppressed because it is too large Load Diff

View File

@ -13,7 +13,7 @@
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>0.63.1</string>
<string>0.63.2</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>

Binary file not shown.

View File

@ -826,6 +826,9 @@ export default ({ theme }) => {
<Separator title='Changed type' theme={theme} />
<Message msg='public' type='room_changed_privacy' isInfo />
<Separator title='Ignored' theme={theme} />
<Message isIgnored />
<Separator title='Custom style' theme={theme} />
<Message msg='Message' style={[styles.normalize, { backgroundColor: '#ddd' }]} />