[NEW] Log remaining events (#2368)
* Change NAVIGATE_TO for GO_TO to reduce event size * Log RA JitsiMeet events and join / terminate * Log more RoomView events * Log slash commands and handle fail * Log RoomActions events * Change from GO_TO to just GO * Log RoomInfoEdit events * Log InviteUsers and InviteUsersEdit events * Log AutoTranslate events * Log NotificationPreferences events * Log remaining routes from RoomActions * Log RoomAction toggle block user * Fix command event Co-authored-by: Diego Mello <diegolmello@gmail.com>
This commit is contained in:
parent
0f0e2c7b5f
commit
95e2ccb846
|
@ -738,6 +738,7 @@ class MessageBox extends Component {
|
||||||
Q.where('id', Q.like(`${ Q.sanitizeLikeString(command) }%`))
|
Q.where('id', Q.like(`${ Q.sanitizeLikeString(command) }%`))
|
||||||
).fetch();
|
).fetch();
|
||||||
if (slashCommand.length > 0) {
|
if (slashCommand.length > 0) {
|
||||||
|
logEvent(events.COMMAND_RUN);
|
||||||
try {
|
try {
|
||||||
const messageWithoutCommand = message.replace(/([^\s]+)/, '').trim();
|
const messageWithoutCommand = message.replace(/([^\s]+)/, '').trim();
|
||||||
const [{ appId }] = slashCommand;
|
const [{ appId }] = slashCommand;
|
||||||
|
@ -745,6 +746,7 @@ class MessageBox extends Component {
|
||||||
RocketChat.runSlashCommand(command, roomId, messageWithoutCommand, triggerId, tmid || messageTmid);
|
RocketChat.runSlashCommand(command, roomId, messageWithoutCommand, triggerId, tmid || messageTmid);
|
||||||
replyCancel();
|
replyCancel();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
logEvent(events.COMMAND_RUN_F);
|
||||||
log(e);
|
log(e);
|
||||||
}
|
}
|
||||||
this.clearInput();
|
this.clearInput();
|
||||||
|
|
|
@ -5,6 +5,7 @@ import { Text } from 'react-native';
|
||||||
import { themes } from '../../constants/colors';
|
import { themes } from '../../constants/colors';
|
||||||
|
|
||||||
import styles from './styles';
|
import styles from './styles';
|
||||||
|
import { logEvent, events } from '../../utils/log';
|
||||||
|
|
||||||
const AtMention = React.memo(({
|
const AtMention = React.memo(({
|
||||||
mention, mentions, username, navToRoomInfo, style = [], useRealName, theme
|
mention, mentions, username, navToRoomInfo, style = [], useRealName, theme
|
||||||
|
@ -41,6 +42,7 @@ const AtMention = React.memo(({
|
||||||
const user = mentions && mentions.length && mentions.find(m => m.username === mention);
|
const user = mentions && mentions.length && mentions.find(m => m.username === mention);
|
||||||
|
|
||||||
const handlePress = () => {
|
const handlePress = () => {
|
||||||
|
logEvent(events.ROOM_MENTION_GO_USER_INFO);
|
||||||
const navParam = {
|
const navParam = {
|
||||||
t: 'd',
|
t: 'd',
|
||||||
rid: user && user._id
|
rid: user && user._id
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import reduxStore from '../createStore';
|
import reduxStore from '../createStore';
|
||||||
import Navigation from '../Navigation';
|
import Navigation from '../Navigation';
|
||||||
|
import { logEvent, events } from '../../utils/log';
|
||||||
|
|
||||||
async function jitsiURL({ rid }) {
|
async function jitsiURL({ rid }) {
|
||||||
const { settings } = reduxStore.getState();
|
const { settings } = reduxStore.getState();
|
||||||
|
@ -24,7 +25,7 @@ async function jitsiURL({ rid }) {
|
||||||
const accessToken = await this.methodCallWrapper('jitsi:generateAccessToken', rid);
|
const accessToken = await this.methodCallWrapper('jitsi:generateAccessToken', rid);
|
||||||
queryString = `?jwt=${ accessToken }`;
|
queryString = `?jwt=${ accessToken }`;
|
||||||
} catch {
|
} catch {
|
||||||
// do nothing
|
logEvent(events.RA_JITSI_F);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,6 +33,7 @@ async function jitsiURL({ rid }) {
|
||||||
}
|
}
|
||||||
|
|
||||||
async function callJitsi(rid, onlyAudio = false) {
|
async function callJitsi(rid, onlyAudio = false) {
|
||||||
|
logEvent(onlyAudio ? events.RA_JITSI_AUDIO : events.RA_JITSI_VIDEO);
|
||||||
const url = await jitsiURL.call(this, { rid });
|
const url = await jitsiURL.call(this, { rid });
|
||||||
Navigation.navigate('JitsiMeetView', { url, onlyAudio, rid });
|
Navigation.navigate('JitsiMeetView', { url, onlyAudio, rid });
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@ import Navigation from '../lib/Navigation';
|
||||||
import * as types from '../actions/actionsTypes';
|
import * as types from '../actions/actionsTypes';
|
||||||
import { removedRoom } from '../actions/room';
|
import { removedRoom } from '../actions/room';
|
||||||
import RocketChat from '../lib/rocketchat';
|
import RocketChat from '../lib/rocketchat';
|
||||||
import log from '../utils/log';
|
import log, { logEvent, events } from '../utils/log';
|
||||||
import I18n from '../i18n';
|
import I18n from '../i18n';
|
||||||
import { showErrorAlert } from '../utils/info';
|
import { showErrorAlert } from '../utils/info';
|
||||||
|
|
||||||
|
@ -48,12 +48,14 @@ const handleRemovedRoom = function* handleRemovedRoom() {
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleLeaveRoom = function* handleLeaveRoom({ rid, t }) {
|
const handleLeaveRoom = function* handleLeaveRoom({ rid, t }) {
|
||||||
|
logEvent(events.RA_LEAVE);
|
||||||
try {
|
try {
|
||||||
const result = yield RocketChat.leaveRoom(rid, t);
|
const result = yield RocketChat.leaveRoom(rid, t);
|
||||||
if (result.success) {
|
if (result.success) {
|
||||||
yield handleRemovedRoom();
|
yield handleRemovedRoom();
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
logEvent(events.RA_LEAVE_F);
|
||||||
if (e.data && e.data.errorType === 'error-you-are-last-owner') {
|
if (e.data && e.data.errorType === 'error-you-are-last-owner') {
|
||||||
Alert.alert(I18n.t('Oops'), I18n.t(e.data.errorType));
|
Alert.alert(I18n.t('Oops'), I18n.t(e.data.errorType));
|
||||||
} else {
|
} else {
|
||||||
|
@ -63,12 +65,14 @@ const handleLeaveRoom = function* handleLeaveRoom({ rid, t }) {
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleDeleteRoom = function* handleDeleteRoom({ rid, t }) {
|
const handleDeleteRoom = function* handleDeleteRoom({ rid, t }) {
|
||||||
|
logEvent(events.RI_EDIT_DELETE);
|
||||||
try {
|
try {
|
||||||
const result = yield RocketChat.deleteRoom(rid, t);
|
const result = yield RocketChat.deleteRoom(rid, t);
|
||||||
if (result.success) {
|
if (result.success) {
|
||||||
yield handleRemovedRoom();
|
yield handleRemovedRoom();
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
logEvent(events.RI_EDIT_DELETE_F);
|
||||||
Alert.alert(I18n.t('Oops'), I18n.t('There_was_an_error_while_action', { action: I18n.t('deleting_room') }));
|
Alert.alert(I18n.t('Oops'), I18n.t('There_was_an_error_while_action', { action: I18n.t('deleting_room') }));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -37,11 +37,11 @@ export default {
|
||||||
ENTER_WITH_APPLE_F: 'enter_with_apple_f',
|
ENTER_WITH_APPLE_F: 'enter_with_apple_f',
|
||||||
|
|
||||||
// SIDEBAR VIEW
|
// SIDEBAR VIEW
|
||||||
SIDEBAR_NAVIGATE_TO_STATUS: 'sidebar_navigate_to_status',
|
SIDEBAR_GO_STATUS: 'sidebar_go_status',
|
||||||
SIDEBAR_NAVIGATE_TO_CHATS: 'sidebar_navigate_to_chats',
|
SIDEBAR_GO_CHATS: 'sidebar_go_chats',
|
||||||
SIDEBAR_NAVIGATE_TO_PROFILE: 'sidebar_navigate_to_profile',
|
SIDEBAR_GO_PROFILE: 'sidebar_go_profile',
|
||||||
SIDEBAR_NAVIGATE_TO_SETTINGS: 'sidebar_navigate_to_settings',
|
SIDEBAR_GO_SETTINGS: 'sidebar_go_settings',
|
||||||
SIDEBAR_NAVIGATE_TO_ADMINPANEL: 'sidebar_navigate_to_admin_panel',
|
SIDEBAR_GO_ADMINPANEL: 'sidebar_go_admin_panel',
|
||||||
|
|
||||||
// STATUS VIEW
|
// STATUS VIEW
|
||||||
STATUS_DONE: 'status_done',
|
STATUS_DONE: 'status_done',
|
||||||
|
@ -57,11 +57,11 @@ export default {
|
||||||
RL_TOGGLE_SERVER_DROPDOWN: 'rl_toggle_server_dropdown',
|
RL_TOGGLE_SERVER_DROPDOWN: 'rl_toggle_server_dropdown',
|
||||||
RL_ADD_SERVER: 'rl_add_server',
|
RL_ADD_SERVER: 'rl_add_server',
|
||||||
RL_CHANGE_SERVER: 'rl_change_server',
|
RL_CHANGE_SERVER: 'rl_change_server',
|
||||||
RL_NAVIGATE_TO_NEW_MSG: 'rl_navigate_to_new_msg',
|
RL_GO_NEW_MSG: 'rl_go_new_msg',
|
||||||
RL_SEARCH: 'rl_search',
|
RL_SEARCH: 'rl_search',
|
||||||
RL_NAVIGATE_TO_DIRECTORY: 'rl_navigate_to_directory',
|
RL_GO_DIRECTORY: 'rl_go_directory',
|
||||||
RL_GO_QUEUE: 'rl_go_queue',
|
RL_GO_QUEUE: 'rl_go_queue',
|
||||||
RL_GO_TO_ROOM: 'rl_go_to_room',
|
RL_GO_ROOM: 'rl_go_room',
|
||||||
RL_FAVORITE_CHANNEL: 'rl_favorite_channel',
|
RL_FAVORITE_CHANNEL: 'rl_favorite_channel',
|
||||||
RL_UNFAVORITE_CHANNEL: 'rl_unfavorite_channel',
|
RL_UNFAVORITE_CHANNEL: 'rl_unfavorite_channel',
|
||||||
RL_TOGGLE_FAVORITE_F: 'rl_toggle_favorite_f',
|
RL_TOGGLE_FAVORITE_F: 'rl_toggle_favorite_f',
|
||||||
|
@ -78,6 +78,7 @@ export default {
|
||||||
RL_GROUP_CHANNELS_BY_FAVORITE: 'rl_group_channels_by_favorite',
|
RL_GROUP_CHANNELS_BY_FAVORITE: 'rl_group_channels_by_favorite',
|
||||||
RL_GROUP_CHANNELS_BY_UNREAD: 'rl_group_channels_by_unread',
|
RL_GROUP_CHANNELS_BY_UNREAD: 'rl_group_channels_by_unread',
|
||||||
|
|
||||||
|
// QUEUE LIST VIEW
|
||||||
QL_GO_ROOM: 'ql_go_room',
|
QL_GO_ROOM: 'ql_go_room',
|
||||||
|
|
||||||
// DIRECTORY VIEW
|
// DIRECTORY VIEW
|
||||||
|
@ -122,14 +123,14 @@ export default {
|
||||||
// SETTINGS VIEW
|
// SETTINGS VIEW
|
||||||
SE_CONTACT_US: 'se_contact_us',
|
SE_CONTACT_US: 'se_contact_us',
|
||||||
SE_CONTACT_US_F: 'se_contact_us_f',
|
SE_CONTACT_US_F: 'se_contact_us_f',
|
||||||
SE_NAVIGATE_TO_LANGUAGE: 'se_navigate_to_language',
|
SE_GO_LANGUAGE: 'se_go_language',
|
||||||
SE_REVIEW_THIS_APP: 'se_review_this_app',
|
SE_REVIEW_THIS_APP: 'se_review_this_app',
|
||||||
SE_REVIEW_THIS_APP_F: 'se_review_this_app_f',
|
SE_REVIEW_THIS_APP_F: 'se_review_this_app_f',
|
||||||
SE_SHARE_THIS_APP: 'se_share_this_app',
|
SE_SHARE_THIS_APP: 'se_share_this_app',
|
||||||
SE_NAVIGATE_TO_DEFAULTBROWSER: 'se_navigate_to_default_browser',
|
SE_GO_DEFAULTBROWSER: 'se_go_default_browser',
|
||||||
SE_NAVIGATE_TO_THEME: 'se_navigate_to_theme',
|
SE_GO_THEME: 'se_go_theme',
|
||||||
SE_NAVIGATE_TO_SCREENLOCKCONFIG: 'se_navigate_to_screen_lock_cfg',
|
SE_GO_SCREENLOCKCONFIG: 'se_go_screen_lock_cfg',
|
||||||
SE_NAVIGATE_TO_PROFILE: 'se_navigate_to_profile',
|
SE_GO_PROFILE: 'se_go_profile',
|
||||||
SE_READ_LICENSE: 'se_read_license',
|
SE_READ_LICENSE: 'se_read_license',
|
||||||
SE_COPY_APP_VERSION: 'se_copy_app_version',
|
SE_COPY_APP_VERSION: 'se_copy_app_version',
|
||||||
SE_COPY_SERVER_VERSION: 'se_copy_server_version',
|
SE_COPY_SERVER_VERSION: 'se_copy_server_version',
|
||||||
|
@ -197,5 +198,93 @@ export default {
|
||||||
ROOM_MSG_ACTION_REACTION: 'room_msg_action_reaction',
|
ROOM_MSG_ACTION_REACTION: 'room_msg_action_reaction',
|
||||||
ROOM_MSG_ACTION_REPORT: 'room_msg_action_report',
|
ROOM_MSG_ACTION_REPORT: 'room_msg_action_report',
|
||||||
ROOM_MSG_ACTION_REPORT_F: 'room_msg_action_report_f',
|
ROOM_MSG_ACTION_REPORT_F: 'room_msg_action_report_f',
|
||||||
ROOM_JOIN: 'room_join'
|
ROOM_JOIN: 'room_join',
|
||||||
|
ROOM_GO_RA: 'room_go_ra',
|
||||||
|
ROOM_TOGGLE_FOLLOW_THREADS: 'room_toggle_follow_threads',
|
||||||
|
ROOM_GO_SEARCH: 'room_go_search',
|
||||||
|
ROOM_GO_THREADS: 'room_go_threads',
|
||||||
|
ROOM_GO_ROOM_INFO: 'room_go_room_info',
|
||||||
|
ROOM_GO_USER_INFO: 'room_go_user_info',
|
||||||
|
ROOM_MENTION_GO_USER_INFO: 'room_mention_go_user_info',
|
||||||
|
COMMAND_RUN: 'command_run',
|
||||||
|
COMMAND_RUN_F: 'command_run_f',
|
||||||
|
|
||||||
|
// ROOM ACTIONS VIEW
|
||||||
|
RA_JITSI_VIDEO: 'ra_jitsi_video',
|
||||||
|
RA_JITSI_AUDIO: 'ra_jitsi_audio',
|
||||||
|
RA_JITSI_F: 'ra_jitsi_f',
|
||||||
|
RA_GO_ROOMINFO: 'ra_go_room_info',
|
||||||
|
RA_GO_ROOMMEMBERS: 'ra_go_room_members',
|
||||||
|
RA_GO_SELECTEDUSERS: 'ra_go_selected_users',
|
||||||
|
RA_GO_INVITEUSERS: 'ra_go_invite_users',
|
||||||
|
RA_GO_MESSAGESFILES: 'ra_go_messages_files',
|
||||||
|
RA_GO_MESSAGESMENTIONS: 'ra_go_messages_mentions',
|
||||||
|
RA_GO_MESSAGESSTARRED: 'ra_go_messages_starred',
|
||||||
|
RA_GO_SEARCHMESSAGES: 'ra_go_search_messages',
|
||||||
|
RA_GO_MESSAGESPINNED: 'ra_go_messages_pinned',
|
||||||
|
RA_GO_AUTOTRANSLATE: 'ra_go_autotranslate',
|
||||||
|
RA_GO_NOTIFICATIONPREF: 'ra_go_notification_pref',
|
||||||
|
RA_GO_FORWARDLIVECHAT: 'ra_go_forward_livechat',
|
||||||
|
RA_GO_VISITORNAVIGATION: 'ra_go_visitor_navigation',
|
||||||
|
RA_SHARE: 'ra_share',
|
||||||
|
RA_LEAVE: 'ra_leave',
|
||||||
|
RA_LEAVE_F: 'ra_leave_f',
|
||||||
|
RA_TOGGLE_BLOCK_USER: 'ra_toggle_block_user',
|
||||||
|
RA_TOGGLE_BLOCK_USER_F: 'ra_toggle_block_user_f',
|
||||||
|
|
||||||
|
// ROOM INFO VIEW
|
||||||
|
RI_GO_RI_EDIT: 'ri_go_ri_edit',
|
||||||
|
RI_GO_LIVECHAT_EDIT: 'ri_go_livechat_edit',
|
||||||
|
RI_GO_ROOM_USER: 'ri_go_room_user',
|
||||||
|
|
||||||
|
// ROOM INFO EDIT VIEW
|
||||||
|
RI_EDIT_TOGGLE_ROOM_TYPE: 'ri_edit_toggle_room_type',
|
||||||
|
RI_EDIT_TOGGLE_READ_ONLY: 'ri_edit_toggle_read_only',
|
||||||
|
RI_EDIT_TOGGLE_REACTIONS: 'ri_edit_toggle_reactions',
|
||||||
|
RI_EDIT_TOGGLE_SYSTEM_MSG: 'ri_edit_toggle_system_msg',
|
||||||
|
RI_EDIT_SAVE: 'ri_edit_save',
|
||||||
|
RI_EDIT_SAVE_F: 'ri_edit_save_f',
|
||||||
|
RI_EDIT_RESET: 'ri_edit_reset',
|
||||||
|
RI_EDIT_TOGGLE_ARCHIVE: 'ri_edit_toggle_archive',
|
||||||
|
RI_EDIT_TOGGLE_ARCHIVE_F: 'ri_edit_toggle_archive_f',
|
||||||
|
RI_EDIT_DELETE: 'ri_edit_delete',
|
||||||
|
RI_EDIT_DELETE_F: 'ri_edit_delete_f',
|
||||||
|
|
||||||
|
// JITSI MEET VIEW
|
||||||
|
JM_CONFERENCE_JOIN: 'jm_conference_join',
|
||||||
|
JM_CONFERENCE_TERMINATE: 'jm_conference_terminate',
|
||||||
|
|
||||||
|
// INVITE USERS VIEW
|
||||||
|
IU_SHARE: 'iu_share',
|
||||||
|
IU_GO_IU_EDIT: 'iu_go_iu_edit',
|
||||||
|
|
||||||
|
// INVITE USERS EDIT VIEW
|
||||||
|
IU_EDIT_SET_LINK_PARAM: 'iu_edit_set_link_param',
|
||||||
|
IU_EDIT_CREATE_LINK: 'iu_edit_create_link',
|
||||||
|
|
||||||
|
// AUTO TRANSLATE VIEW
|
||||||
|
AT_TOGGLE_TRANSLATE: 'at_toggle_translate',
|
||||||
|
AT_TOGGLE_TRANSLATE_F: 'at_toggle_translate_f',
|
||||||
|
AT_SET_LANG: 'at_set_lang',
|
||||||
|
AT_SET_LANG_F: 'at_set_lang_f',
|
||||||
|
|
||||||
|
// NOTIFICATION PREFERENCES VIEW
|
||||||
|
NP_DISABLENOTIFICATIONS: 'np_disable_notification',
|
||||||
|
NP_DISABLENOTIFICATIONS_F: 'np_disable_notification_f',
|
||||||
|
NP_MUTEGROUPMENTIONS: 'np_mute_group_mentions',
|
||||||
|
NP_MUTEGROUPMENTIONS_F: 'np_mute_group_mentions_f',
|
||||||
|
NP_HIDEUNREADSTATUS: 'np_hide_unread_status',
|
||||||
|
NP_HIDEUNREADSTATUS_F: 'np_hide_unread_status_f',
|
||||||
|
NP_DESKTOPNOTIFICATIONS: 'np_desktop_notifications',
|
||||||
|
NP_DESKTOPNOTIFICATIONS_F: 'np_desktop_notifications_f',
|
||||||
|
NP_MOBILEPUSHNOTIFICATIONS: 'np_mobile_push_notifications',
|
||||||
|
NP_MOBILEPUSHNOTIFICATIONS_F: 'np_mobile_push_notifications_f',
|
||||||
|
NP_AUDIONOTIFICATIONS: 'np_audio_notifications',
|
||||||
|
NP_AUDIONOTIFICATIONS_F: 'np_audio_notifications_f',
|
||||||
|
NP_AUDIONOTIFICATIONVALUE: 'np_audio_notification_value',
|
||||||
|
NP_AUDIONOTIFICATIONVALUE_F: 'np_audio_notification_value_f',
|
||||||
|
NP_DESKTOPNOTIFICATIONDURATION: 'np_desktopnotificationduration',
|
||||||
|
NP_DESKTOPNOTIFICATIONDURATION_F: 'np_desktopnotificationduration_f',
|
||||||
|
NP_EMAILNOTIFICATIONS: 'np_email_notifications',
|
||||||
|
NP_EMAILNOTIFICATIONS_F: 'np_email_notifications_f'
|
||||||
};
|
};
|
||||||
|
|
|
@ -15,6 +15,7 @@ import { SWITCH_TRACK_COLOR, themes } from '../../constants/colors';
|
||||||
import scrollPersistTaps from '../../utils/scrollPersistTaps';
|
import scrollPersistTaps from '../../utils/scrollPersistTaps';
|
||||||
import { withTheme } from '../../theme';
|
import { withTheme } from '../../theme';
|
||||||
import SafeAreaView from '../../containers/SafeAreaView';
|
import SafeAreaView from '../../containers/SafeAreaView';
|
||||||
|
import { logEvent, events } from '../../utils/log';
|
||||||
|
|
||||||
const styles = StyleSheet.create({
|
const styles = StyleSheet.create({
|
||||||
contentContainerStyle: {
|
contentContainerStyle: {
|
||||||
|
@ -103,6 +104,7 @@ class AutoTranslateView extends React.Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
toggleAutoTranslate = async() => {
|
toggleAutoTranslate = async() => {
|
||||||
|
logEvent(events.AT_TOGGLE_TRANSLATE);
|
||||||
const { enableAutoTranslate } = this.state;
|
const { enableAutoTranslate } = this.state;
|
||||||
try {
|
try {
|
||||||
await RocketChat.saveAutoTranslate({
|
await RocketChat.saveAutoTranslate({
|
||||||
|
@ -113,11 +115,13 @@ class AutoTranslateView extends React.Component {
|
||||||
});
|
});
|
||||||
this.setState({ enableAutoTranslate: !enableAutoTranslate });
|
this.setState({ enableAutoTranslate: !enableAutoTranslate });
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
logEvent(events.AT_TOGGLE_TRANSLATE_F);
|
||||||
console.log(error);
|
console.log(error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
saveAutoTranslateLanguage = async(language) => {
|
saveAutoTranslateLanguage = async(language) => {
|
||||||
|
logEvent(events.AT_SET_LANG);
|
||||||
try {
|
try {
|
||||||
await RocketChat.saveAutoTranslate({
|
await RocketChat.saveAutoTranslate({
|
||||||
rid: this.rid,
|
rid: this.rid,
|
||||||
|
@ -126,6 +130,7 @@ class AutoTranslateView extends React.Component {
|
||||||
});
|
});
|
||||||
this.setState({ selectedLanguage: language });
|
this.setState({ selectedLanguage: language });
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
logEvent(events.AT_SET_LANG_F);
|
||||||
console.log(error);
|
console.log(error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,7 @@ import { themes } from '../../constants/colors';
|
||||||
import { withTheme } from '../../theme';
|
import { withTheme } from '../../theme';
|
||||||
import Separator from '../../containers/Separator';
|
import Separator from '../../containers/Separator';
|
||||||
import SafeAreaView from '../../containers/SafeAreaView';
|
import SafeAreaView from '../../containers/SafeAreaView';
|
||||||
|
import { logEvent, events } from '../../utils/log';
|
||||||
|
|
||||||
const OPTIONS = {
|
const OPTIONS = {
|
||||||
days: [{
|
days: [{
|
||||||
|
@ -72,6 +73,7 @@ class InviteUsersView extends React.Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
onValueChangePicker = (key, value) => {
|
onValueChangePicker = (key, value) => {
|
||||||
|
logEvent(events.IU_EDIT_SET_LINK_PARAM);
|
||||||
const { inviteLinksSetParams } = this.props;
|
const { inviteLinksSetParams } = this.props;
|
||||||
const params = {
|
const params = {
|
||||||
[key]: value
|
[key]: value
|
||||||
|
@ -80,6 +82,7 @@ class InviteUsersView extends React.Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
createInviteLink = () => {
|
createInviteLink = () => {
|
||||||
|
logEvent(events.IU_EDIT_CREATE_LINK);
|
||||||
const { createInviteLink, navigation } = this.props;
|
const { createInviteLink, navigation } = this.props;
|
||||||
createInviteLink(this.rid);
|
createInviteLink(this.rid);
|
||||||
navigation.pop();
|
navigation.pop();
|
||||||
|
|
|
@ -18,6 +18,7 @@ import StatusBar from '../../containers/StatusBar';
|
||||||
import { themes } from '../../constants/colors';
|
import { themes } from '../../constants/colors';
|
||||||
import { withTheme } from '../../theme';
|
import { withTheme } from '../../theme';
|
||||||
import SafeAreaView from '../../containers/SafeAreaView';
|
import SafeAreaView from '../../containers/SafeAreaView';
|
||||||
|
import { logEvent, events } from '../../utils/log';
|
||||||
|
|
||||||
class InviteUsersView extends React.Component {
|
class InviteUsersView extends React.Component {
|
||||||
static navigationOptions = () => ({
|
static navigationOptions = () => ({
|
||||||
|
@ -50,6 +51,7 @@ class InviteUsersView extends React.Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
share = () => {
|
share = () => {
|
||||||
|
logEvent(events.IU_SHARE);
|
||||||
const { invite } = this.props;
|
const { invite } = this.props;
|
||||||
if (!invite || !invite.url) {
|
if (!invite || !invite.url) {
|
||||||
return;
|
return;
|
||||||
|
@ -58,6 +60,7 @@ class InviteUsersView extends React.Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
edit = () => {
|
edit = () => {
|
||||||
|
logEvent(events.IU_GO_IU_EDIT);
|
||||||
const { navigation } = this.props;
|
const { navigation } = this.props;
|
||||||
navigation.navigate('InviteUsersEditView', { rid: this.rid });
|
navigation.navigate('InviteUsersEditView', { rid: this.rid });
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,7 @@ import RocketChat from '../lib/rocketchat';
|
||||||
import { getUserSelector } from '../selectors/login';
|
import { getUserSelector } from '../selectors/login';
|
||||||
|
|
||||||
import sharedStyles from './Styles';
|
import sharedStyles from './Styles';
|
||||||
|
import { logEvent, events } from '../utils/log';
|
||||||
|
|
||||||
const formatUrl = (url, baseUrl, uriSize, avatarAuthURLFragment) => (
|
const formatUrl = (url, baseUrl, uriSize, avatarAuthURLFragment) => (
|
||||||
`${ baseUrl }/avatar/${ url }?format=png&width=${ uriSize }&height=${ uriSize }${ avatarAuthURLFragment }`
|
`${ baseUrl }/avatar/${ url }?format=png&width=${ uriSize }&height=${ uriSize }${ avatarAuthURLFragment }`
|
||||||
|
@ -59,6 +60,7 @@ class JitsiMeetView extends React.Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillUnmount() {
|
componentWillUnmount() {
|
||||||
|
logEvent(events.JM_CONFERENCE_TERMINATE);
|
||||||
if (this.jitsiTimeout) {
|
if (this.jitsiTimeout) {
|
||||||
BackgroundTimer.clearInterval(this.jitsiTimeout);
|
BackgroundTimer.clearInterval(this.jitsiTimeout);
|
||||||
}
|
}
|
||||||
|
@ -68,6 +70,7 @@ class JitsiMeetView extends React.Component {
|
||||||
// Jitsi Update Timeout needs to be called every 10 seconds to make sure
|
// Jitsi Update Timeout needs to be called every 10 seconds to make sure
|
||||||
// call is not ended and is available to web users.
|
// call is not ended and is available to web users.
|
||||||
onConferenceJoined = () => {
|
onConferenceJoined = () => {
|
||||||
|
logEvent(events.JM_CONFERENCE_JOIN);
|
||||||
RocketChat.updateJitsiTimeout(this.rid).catch(e => console.log(e));
|
RocketChat.updateJitsiTimeout(this.rid).catch(e => console.log(e));
|
||||||
if (this.jitsiTimeout) {
|
if (this.jitsiTimeout) {
|
||||||
BackgroundTimer.clearInterval(this.jitsiTimeout);
|
BackgroundTimer.clearInterval(this.jitsiTimeout);
|
||||||
|
@ -78,6 +81,7 @@ class JitsiMeetView extends React.Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
onConferenceTerminated = () => {
|
onConferenceTerminated = () => {
|
||||||
|
logEvent(events.JM_CONFERENCE_TERMINATE);
|
||||||
const { navigation } = this.props;
|
const { navigation } = this.props;
|
||||||
if (this.jitsiTimeout) {
|
if (this.jitsiTimeout) {
|
||||||
BackgroundTimer.clearInterval(this.jitsiTimeout);
|
BackgroundTimer.clearInterval(this.jitsiTimeout);
|
||||||
|
|
|
@ -16,7 +16,7 @@ import RocketChat from '../../lib/rocketchat';
|
||||||
import { withTheme } from '../../theme';
|
import { withTheme } from '../../theme';
|
||||||
import protectedFunction from '../../lib/methods/helpers/protectedFunction';
|
import protectedFunction from '../../lib/methods/helpers/protectedFunction';
|
||||||
import SafeAreaView from '../../containers/SafeAreaView';
|
import SafeAreaView from '../../containers/SafeAreaView';
|
||||||
import log from '../../utils/log';
|
import log, { events, logEvent } from '../../utils/log';
|
||||||
|
|
||||||
const SectionTitle = React.memo(({ title, theme }) => (
|
const SectionTitle = React.memo(({ title, theme }) => (
|
||||||
<Text
|
<Text
|
||||||
|
@ -181,6 +181,7 @@ class NotificationPreferencesView extends React.Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
saveNotificationSettings = async(key, value, params) => {
|
saveNotificationSettings = async(key, value, params) => {
|
||||||
|
logEvent(events[`NP_${ key.toUpperCase() }`]);
|
||||||
const { room } = this.state;
|
const { room } = this.state;
|
||||||
const db = database.active;
|
const db = database.active;
|
||||||
|
|
||||||
|
@ -206,6 +207,7 @@ class NotificationPreferencesView extends React.Component {
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
logEvent(events[`NP_${ key.toUpperCase() }_F`]);
|
||||||
log(e);
|
log(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,7 @@ import sharedStyles from '../Styles';
|
||||||
import Avatar from '../../containers/Avatar';
|
import Avatar from '../../containers/Avatar';
|
||||||
import Status from '../../containers/Status';
|
import Status from '../../containers/Status';
|
||||||
import RocketChat from '../../lib/rocketchat';
|
import RocketChat from '../../lib/rocketchat';
|
||||||
import log from '../../utils/log';
|
import log, { logEvent, events } from '../../utils/log';
|
||||||
import RoomTypeIcon from '../../containers/RoomTypeIcon';
|
import RoomTypeIcon from '../../containers/RoomTypeIcon';
|
||||||
import I18n from '../../i18n';
|
import I18n from '../../i18n';
|
||||||
import scrollPersistTaps from '../../utils/scrollPersistTaps';
|
import scrollPersistTaps from '../../utils/scrollPersistTaps';
|
||||||
|
@ -141,12 +141,14 @@ class RoomActionsView extends React.Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
onPressTouchable = (item) => {
|
onPressTouchable = (item) => {
|
||||||
if (item.route) {
|
const { route, event, params } = item;
|
||||||
|
if (route) {
|
||||||
|
logEvent(events[`RA_GO_${ route.replace('View', '').toUpperCase() }${ params.name ? params.name.toUpperCase() : '' }`]);
|
||||||
const { navigation } = this.props;
|
const { navigation } = this.props;
|
||||||
navigation.navigate(item.route, item.params);
|
navigation.navigate(route, params);
|
||||||
}
|
}
|
||||||
if (item.event) {
|
if (event) {
|
||||||
return item.event();
|
return event();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -513,17 +515,20 @@ class RoomActionsView extends React.Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
toggleBlockUser = () => {
|
toggleBlockUser = () => {
|
||||||
|
logEvent(events.RA_TOGGLE_BLOCK_USER);
|
||||||
const { room } = this.state;
|
const { room } = this.state;
|
||||||
const { rid, blocker } = room;
|
const { rid, blocker } = room;
|
||||||
const { member } = this.state;
|
const { member } = this.state;
|
||||||
try {
|
try {
|
||||||
RocketChat.toggleBlockUser(rid, member._id, !blocker);
|
RocketChat.toggleBlockUser(rid, member._id, !blocker);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
logEvent(events.RA_TOGGLE_BLOCK_USER_F);
|
||||||
log(e);
|
log(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
handleShare = () => {
|
handleShare = () => {
|
||||||
|
logEvent(events.RA_SHARE);
|
||||||
const { room } = this.state;
|
const { room } = this.state;
|
||||||
const permalink = RocketChat.getPermalinkChannel(room);
|
const permalink = RocketChat.getPermalinkChannel(room);
|
||||||
if (!permalink) {
|
if (!permalink) {
|
||||||
|
|
|
@ -23,7 +23,7 @@ import RCTextInput from '../../containers/TextInput';
|
||||||
import Loading from '../../containers/Loading';
|
import Loading from '../../containers/Loading';
|
||||||
import SwitchContainer from './SwitchContainer';
|
import SwitchContainer from './SwitchContainer';
|
||||||
import random from '../../utils/random';
|
import random from '../../utils/random';
|
||||||
import log from '../../utils/log';
|
import log, { logEvent, events } from '../../utils/log';
|
||||||
import I18n from '../../i18n';
|
import I18n from '../../i18n';
|
||||||
import StatusBar from '../../containers/StatusBar';
|
import StatusBar from '../../containers/StatusBar';
|
||||||
import { themes } from '../../constants/colors';
|
import { themes } from '../../constants/colors';
|
||||||
|
@ -150,6 +150,7 @@ class RoomInfoEditView extends React.Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
reset = () => {
|
reset = () => {
|
||||||
|
logEvent(events.RI_EDIT_RESET);
|
||||||
this.clearErrors();
|
this.clearErrors();
|
||||||
this.init(this.room);
|
this.init(this.room);
|
||||||
}
|
}
|
||||||
|
@ -173,6 +174,7 @@ class RoomInfoEditView extends React.Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
submit = async() => {
|
submit = async() => {
|
||||||
|
logEvent(events.RI_EDIT_SAVE);
|
||||||
Keyboard.dismiss();
|
Keyboard.dismiss();
|
||||||
const {
|
const {
|
||||||
room, name, description, topic, announcement, t, ro, reactWhenReadOnly, joinCode, systemMessages
|
room, name, description, topic, announcement, t, ro, reactWhenReadOnly, joinCode, systemMessages
|
||||||
|
@ -242,6 +244,7 @@ class RoomInfoEditView extends React.Component {
|
||||||
await this.setState({ saving: false });
|
await this.setState({ saving: false });
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
if (error) {
|
if (error) {
|
||||||
|
logEvent(events.RI_EDIT_SAVE_F);
|
||||||
showErrorAlert(I18n.t('There_was_an_error_while_action', { action: I18n.t('saving_settings') }));
|
showErrorAlert(I18n.t('There_was_an_error_while_action', { action: I18n.t('saving_settings') }));
|
||||||
} else {
|
} else {
|
||||||
EventEmitter.emit(LISTENER, { message: I18n.t('Settings_succesfully_changed') });
|
EventEmitter.emit(LISTENER, { message: I18n.t('Settings_succesfully_changed') });
|
||||||
|
@ -289,8 +292,10 @@ class RoomInfoEditView extends React.Component {
|
||||||
style: 'destructive',
|
style: 'destructive',
|
||||||
onPress: async() => {
|
onPress: async() => {
|
||||||
try {
|
try {
|
||||||
|
logEvent(events.RI_EDIT_TOGGLE_ARCHIVE);
|
||||||
await RocketChat.toggleArchiveRoom(rid, t, !archived);
|
await RocketChat.toggleArchiveRoom(rid, t, !archived);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
logEvent(events.RI_EDIT_TOGGLE_ARCHIVE_F);
|
||||||
log(e);
|
log(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -333,6 +338,26 @@ class RoomInfoEditView extends React.Component {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
toggleRoomType = (value) => {
|
||||||
|
logEvent(events.RI_EDIT_TOGGLE_ROOM_TYPE);
|
||||||
|
this.setState({ t: value });
|
||||||
|
}
|
||||||
|
|
||||||
|
toggleReadOnly = (value) => {
|
||||||
|
logEvent(events.RI_EDIT_TOGGLE_READ_ONLY);
|
||||||
|
this.setState({ ro: value });
|
||||||
|
}
|
||||||
|
|
||||||
|
toggleReactions = (value) => {
|
||||||
|
logEvent(events.RI_EDIT_TOGGLE_REACTIONS);
|
||||||
|
this.setState({ reactWhenReadOnly: value });
|
||||||
|
}
|
||||||
|
|
||||||
|
toggleHideSystemMessages = (value) => {
|
||||||
|
logEvent(events.RI_EDIT_TOGGLE_SYSTEM_MSG);
|
||||||
|
this.setState(({ systemMessages }) => ({ enableSysMes: value, systemMessages: value ? systemMessages : [] }));
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const {
|
const {
|
||||||
name, nameError, description, topic, announcement, t, ro, reactWhenReadOnly, room, joinCode, saving, permissions, archived, enableSysMes
|
name, nameError, description, topic, announcement, t, ro, reactWhenReadOnly, room, joinCode, saving, permissions, archived, enableSysMes
|
||||||
|
@ -410,7 +435,7 @@ class RoomInfoEditView extends React.Component {
|
||||||
leftLabelSecondary={I18n.t('Everyone_can_access_this_channel')}
|
leftLabelSecondary={I18n.t('Everyone_can_access_this_channel')}
|
||||||
rightLabelPrimary={I18n.t('Private')}
|
rightLabelPrimary={I18n.t('Private')}
|
||||||
rightLabelSecondary={I18n.t('Just_invited_people_can_access_this_channel')}
|
rightLabelSecondary={I18n.t('Just_invited_people_can_access_this_channel')}
|
||||||
onValueChange={value => this.setState({ t: value })}
|
onValueChange={this.toggleRoomType}
|
||||||
theme={theme}
|
theme={theme}
|
||||||
testID='room-info-edit-view-t'
|
testID='room-info-edit-view-t'
|
||||||
/>
|
/>
|
||||||
|
@ -420,7 +445,7 @@ class RoomInfoEditView extends React.Component {
|
||||||
leftLabelSecondary={I18n.t('All_users_in_the_channel_can_write_new_messages')}
|
leftLabelSecondary={I18n.t('All_users_in_the_channel_can_write_new_messages')}
|
||||||
rightLabelPrimary={I18n.t('Read_Only')}
|
rightLabelPrimary={I18n.t('Read_Only')}
|
||||||
rightLabelSecondary={I18n.t('Only_authorized_users_can_write_new_messages')}
|
rightLabelSecondary={I18n.t('Only_authorized_users_can_write_new_messages')}
|
||||||
onValueChange={value => this.setState({ ro: value })}
|
onValueChange={this.toggleReadOnly}
|
||||||
disabled={!permissions[PERMISSION_SET_READONLY] || room.broadcast}
|
disabled={!permissions[PERMISSION_SET_READONLY] || room.broadcast}
|
||||||
theme={theme}
|
theme={theme}
|
||||||
testID='room-info-edit-view-ro'
|
testID='room-info-edit-view-ro'
|
||||||
|
@ -433,7 +458,7 @@ class RoomInfoEditView extends React.Component {
|
||||||
leftLabelSecondary={I18n.t('Reactions_are_disabled')}
|
leftLabelSecondary={I18n.t('Reactions_are_disabled')}
|
||||||
rightLabelPrimary={I18n.t('Allow_Reactions')}
|
rightLabelPrimary={I18n.t('Allow_Reactions')}
|
||||||
rightLabelSecondary={I18n.t('Reactions_are_enabled')}
|
rightLabelSecondary={I18n.t('Reactions_are_enabled')}
|
||||||
onValueChange={value => this.setState({ reactWhenReadOnly: value })}
|
onValueChange={this.toggleReactions}
|
||||||
disabled={!permissions[PERMISSION_SET_REACT_WHEN_READONLY]}
|
disabled={!permissions[PERMISSION_SET_REACT_WHEN_READONLY]}
|
||||||
theme={theme}
|
theme={theme}
|
||||||
testID='room-info-edit-view-react-when-ro'
|
testID='room-info-edit-view-react-when-ro'
|
||||||
|
@ -455,7 +480,7 @@ class RoomInfoEditView extends React.Component {
|
||||||
leftLabelSecondary={enableSysMes ? I18n.t('Overwrites_the_server_configuration_and_use_room_config') : I18n.t('Uses_server_configuration')}
|
leftLabelSecondary={enableSysMes ? I18n.t('Overwrites_the_server_configuration_and_use_room_config') : I18n.t('Uses_server_configuration')}
|
||||||
theme={theme}
|
theme={theme}
|
||||||
testID='room-info-edit-switch-system-messages'
|
testID='room-info-edit-switch-system-messages'
|
||||||
onValueChange={value => this.setState(({ systemMessages }) => ({ enableSysMes: value, systemMessages: value ? systemMessages : [] }))}
|
onValueChange={this.toggleHideSystemMessages}
|
||||||
labelContainerStyle={styles.hideSystemMessages}
|
labelContainerStyle={styles.hideSystemMessages}
|
||||||
leftLabelStyle={styles.systemMessagesLabel}
|
leftLabelStyle={styles.systemMessagesLabel}
|
||||||
>
|
>
|
||||||
|
|
|
@ -17,7 +17,7 @@ import RoomTypeIcon from '../../containers/RoomTypeIcon';
|
||||||
import I18n from '../../i18n';
|
import I18n from '../../i18n';
|
||||||
import { CustomHeaderButtons, CloseModalButton } from '../../containers/HeaderButton';
|
import { CustomHeaderButtons, CloseModalButton } from '../../containers/HeaderButton';
|
||||||
import StatusBar from '../../containers/StatusBar';
|
import StatusBar from '../../containers/StatusBar';
|
||||||
import log from '../../utils/log';
|
import log, { logEvent, events } from '../../utils/log';
|
||||||
import { themes } from '../../constants/colors';
|
import { themes } from '../../constants/colors';
|
||||||
import { withTheme } from '../../theme';
|
import { withTheme } from '../../theme';
|
||||||
import { getUserSelector } from '../../selectors/login';
|
import { getUserSelector } from '../../selectors/login';
|
||||||
|
@ -117,7 +117,11 @@ class RoomInfoView extends React.Component {
|
||||||
<CustomHeaderButtons>
|
<CustomHeaderButtons>
|
||||||
<Item
|
<Item
|
||||||
iconName='edit'
|
iconName='edit'
|
||||||
onPress={() => navigation.navigate(t === 'l' ? 'LivechatEditView' : 'RoomInfoEditView', { rid, room, roomUser })}
|
onPress={() => {
|
||||||
|
const isLivechat = t === 'l';
|
||||||
|
logEvent(events[`RI_GO_${ isLivechat ? 'LIVECHAT' : 'RI' }_EDIT`]);
|
||||||
|
navigation.navigate(isLivechat ? 'LivechatEditView' : 'RoomInfoEditView', { rid, room, roomUser });
|
||||||
|
}}
|
||||||
testID='room-info-view-edit-button'
|
testID='room-info-view-edit-button'
|
||||||
/>
|
/>
|
||||||
</CustomHeaderButtons>
|
</CustomHeaderButtons>
|
||||||
|
@ -246,6 +250,7 @@ class RoomInfoView extends React.Component {
|
||||||
})
|
})
|
||||||
|
|
||||||
goRoom = () => {
|
goRoom = () => {
|
||||||
|
logEvent(events.RI_GO_ROOM_USER);
|
||||||
const { roomUser, room } = this.state;
|
const { roomUser, room } = this.state;
|
||||||
const { name, username } = roomUser;
|
const { name, username } = roomUser;
|
||||||
const { rooms, navigation, isMasterDetail } = this.props;
|
const { rooms, navigation, isMasterDetail } = this.props;
|
||||||
|
|
|
@ -5,6 +5,7 @@ import { connect } from 'react-redux';
|
||||||
import { CustomHeaderButtons, Item } from '../../../containers/HeaderButton';
|
import { CustomHeaderButtons, Item } from '../../../containers/HeaderButton';
|
||||||
import database from '../../../lib/database';
|
import database from '../../../lib/database';
|
||||||
import { getUserSelector } from '../../../selectors/login';
|
import { getUserSelector } from '../../../selectors/login';
|
||||||
|
import { logEvent, events } from '../../../utils/log';
|
||||||
|
|
||||||
class RightButtonsContainer extends React.PureComponent {
|
class RightButtonsContainer extends React.PureComponent {
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
|
@ -58,6 +59,7 @@ class RightButtonsContainer extends React.PureComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
goThreadsView = () => {
|
goThreadsView = () => {
|
||||||
|
logEvent(events.ROOM_GO_THREADS);
|
||||||
const {
|
const {
|
||||||
rid, t, navigation, isMasterDetail
|
rid, t, navigation, isMasterDetail
|
||||||
} = this.props;
|
} = this.props;
|
||||||
|
@ -69,6 +71,7 @@ class RightButtonsContainer extends React.PureComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
goSearchView = () => {
|
goSearchView = () => {
|
||||||
|
logEvent(events.ROOM_GO_SEARCH);
|
||||||
const {
|
const {
|
||||||
rid, navigation, isMasterDetail
|
rid, navigation, isMasterDetail
|
||||||
} = this.props;
|
} = this.props;
|
||||||
|
@ -80,6 +83,7 @@ class RightButtonsContainer extends React.PureComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
toggleFollowThread = () => {
|
toggleFollowThread = () => {
|
||||||
|
logEvent(events.ROOM_TOGGLE_FOLLOW_THREADS);
|
||||||
const { isFollowingThread } = this.state;
|
const { isFollowingThread } = this.state;
|
||||||
const { toggleFollowThread } = this.props;
|
const { toggleFollowThread } = this.props;
|
||||||
if (toggleFollowThread) {
|
if (toggleFollowThread) {
|
||||||
|
|
|
@ -357,6 +357,7 @@ class RoomView extends React.Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
goRoomActionsView = (screen) => {
|
goRoomActionsView = (screen) => {
|
||||||
|
logEvent(events.ROOM_GO_RA);
|
||||||
const { room, member } = this.state;
|
const { room, member } = this.state;
|
||||||
const { navigation, isMasterDetail } = this.props;
|
const { navigation, isMasterDetail } = this.props;
|
||||||
if (isMasterDetail) {
|
if (isMasterDetail) {
|
||||||
|
@ -750,6 +751,7 @@ class RoomView extends React.Component {
|
||||||
|
|
||||||
navToRoomInfo = (navParam) => {
|
navToRoomInfo = (navParam) => {
|
||||||
const { navigation, user, isMasterDetail } = this.props;
|
const { navigation, user, isMasterDetail } = this.props;
|
||||||
|
logEvent(events[`ROOM_GO_${ navParam.t === 'd' ? 'USER' : 'ROOM' }_INFO`]);
|
||||||
if (navParam.rid === user.id) {
|
if (navParam.rid === user.id) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -668,7 +668,7 @@ class RoomsListView extends React.Component {
|
||||||
};
|
};
|
||||||
|
|
||||||
goDirectory = () => {
|
goDirectory = () => {
|
||||||
logEvent(events.RL_NAVIGATE_TO_DIRECTORY);
|
logEvent(events.RL_GO_DIRECTORY);
|
||||||
const { navigation, isMasterDetail } = this.props;
|
const { navigation, isMasterDetail } = this.props;
|
||||||
if (isMasterDetail) {
|
if (isMasterDetail) {
|
||||||
navigation.navigate('ModalStackNavigator', { screen: 'DirectoryView' });
|
navigation.navigate('ModalStackNavigator', { screen: 'DirectoryView' });
|
||||||
|
@ -692,7 +692,7 @@ class RoomsListView extends React.Component {
|
||||||
};
|
};
|
||||||
|
|
||||||
goRoom = ({ item, isMasterDetail }) => {
|
goRoom = ({ item, isMasterDetail }) => {
|
||||||
logEvent(events.RL_GO_TO_ROOM);
|
logEvent(events.RL_GO_ROOM);
|
||||||
const { item: currentItem } = this.state;
|
const { item: currentItem } = this.state;
|
||||||
const { rooms } = this.props;
|
const { rooms } = this.props;
|
||||||
if (currentItem?.rid === item.rid || rooms?.includes(item.rid)) {
|
if (currentItem?.rid === item.rid || rooms?.includes(item.rid)) {
|
||||||
|
@ -753,7 +753,7 @@ class RoomsListView extends React.Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
goToNewMessage = () => {
|
goToNewMessage = () => {
|
||||||
logEvent(events.RL_NAVIGATE_TO_NEW_MSG);
|
logEvent(events.RL_GO_NEW_MSG);
|
||||||
const { navigation, isMasterDetail } = this.props;
|
const { navigation, isMasterDetail } = this.props;
|
||||||
|
|
||||||
if (isMasterDetail) {
|
if (isMasterDetail) {
|
||||||
|
|
|
@ -140,7 +140,7 @@ class SettingsView extends React.Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
navigateToScreen = (screen) => {
|
navigateToScreen = (screen) => {
|
||||||
logEvent(events[`SE_NAVIGATE_TO_${ screen.replace('View', '').toUpperCase() }`]);
|
logEvent(events[`SE_GO_${ screen.replace('View', '').toUpperCase() }`]);
|
||||||
const { navigation } = this.props;
|
const { navigation } = this.props;
|
||||||
navigation.navigate(screen);
|
navigation.navigate(screen);
|
||||||
}
|
}
|
||||||
|
|
|
@ -134,7 +134,7 @@ class Sidebar extends Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
sidebarNavigate = (route) => {
|
sidebarNavigate = (route) => {
|
||||||
logEvent(events[`SIDEBAR_NAVIGATE_TO_${ route.replace('StackNavigator', '').replace('View', '').toUpperCase() }`]);
|
logEvent(events[`SIDEBAR_GO_${ route.replace('StackNavigator', '').replace('View', '').toUpperCase() }`]);
|
||||||
const { navigation } = this.props;
|
const { navigation } = this.props;
|
||||||
navigation.navigate(route);
|
navigation.navigate(route);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue