[IMPROVEMENT] Add username on status messages (#2553)

* 1689 - missing user name for status messages

* 1689 - missing user name for status messages. Fixed broken e2e test "should pin message".

* Minor tweak

* Remove center style

* Small refactor on User

* Remove toLowerCase

* Update tests

Co-authored-by: Diego Mello <diegolmello@gmail.com>
This commit is contained in:
Dave Koo 2020-12-01 11:26:03 -08:00 committed by GitHub
parent 274f50ca6e
commit b0b9d62a91
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 371 additions and 380 deletions

View File

@ -17387,14 +17387,9 @@ exports[`Storyshots Message list message 1`] = `
</View> </View>
<View <View
style={ style={
Array [ Object {
Object { "flexDirection": "row",
"flexDirection": "row", }
},
Object {
"alignItems": "center",
},
]
} }
> >
<View <View
@ -33641,14 +33636,9 @@ exports[`Storyshots Message list message 1`] = `
</View> </View>
<View <View
style={ style={
Array [ Object {
Object { "flexDirection": "row",
"flexDirection": "row", }
},
Object {
"alignItems": "center",
},
]
} }
> >
<View <View
@ -33875,14 +33865,9 @@ exports[`Storyshots Message list message 1`] = `
</View> </View>
<View <View
style={ style={
Array [ Object {
Object { "flexDirection": "row",
"flexDirection": "row", }
},
Object {
"alignItems": "center",
},
]
} }
> >
<View <View
@ -34109,14 +34094,9 @@ exports[`Storyshots Message list message 1`] = `
</View> </View>
<View <View
style={ style={
Array [ Object {
Object { "flexDirection": "row",
"flexDirection": "row", }
},
Object {
"alignItems": "center",
},
]
} }
> >
<View <View
@ -34343,14 +34323,9 @@ exports[`Storyshots Message list message 1`] = `
</View> </View>
<View <View
style={ style={
Array [ Object {
Object { "flexDirection": "row",
"flexDirection": "row", }
},
Object {
"alignItems": "center",
},
]
} }
> >
<View <View
@ -34577,14 +34552,9 @@ exports[`Storyshots Message list message 1`] = `
</View> </View>
<View <View
style={ style={
Array [ Object {
Object { "flexDirection": "row",
"flexDirection": "row", }
},
Object {
"alignItems": "center",
},
]
} }
> >
<View <View
@ -34811,14 +34781,9 @@ exports[`Storyshots Message list message 1`] = `
</View> </View>
<View <View
style={ style={
Array [ Object {
Object { "flexDirection": "row",
"flexDirection": "row", }
},
Object {
"alignItems": "center",
},
]
} }
> >
<View <View
@ -35045,14 +35010,9 @@ exports[`Storyshots Message list message 1`] = `
</View> </View>
<View <View
style={ style={
Array [ Object {
Object { "flexDirection": "row",
"flexDirection": "row", }
},
Object {
"alignItems": "center",
},
]
} }
> >
<View <View
@ -35598,14 +35558,9 @@ exports[`Storyshots Message list message 1`] = `
> >
<View <View
style={ style={
Array [ Object {
Object { "flexDirection": "row",
"flexDirection": "row", }
},
Object {
"alignItems": "center",
},
]
} }
> >
<View <View
@ -35746,14 +35701,9 @@ exports[`Storyshots Message list message 1`] = `
> >
<View <View
style={ style={
Array [ Object {
Object { "flexDirection": "row",
"flexDirection": "row", }
},
Object {
"alignItems": "center",
},
]
} }
> >
<View <View
@ -35894,14 +35844,9 @@ exports[`Storyshots Message list message 1`] = `
> >
<View <View
style={ style={
Array [ Object {
Object { "flexDirection": "row",
"flexDirection": "row", }
},
Object {
"alignItems": "center",
},
]
} }
> >
<View <View
@ -36147,14 +36092,9 @@ exports[`Storyshots Message list message 1`] = `
</View> </View>
<View <View
style={ style={
Array [ Object {
Object { "flexDirection": "row",
"flexDirection": "row", }
},
Object {
"alignItems": "center",
},
]
} }
> >
<View <View
@ -36295,14 +36235,9 @@ exports[`Storyshots Message list message 1`] = `
> >
<View <View
style={ style={
Array [ Object {
Object { "flexDirection": "row",
"flexDirection": "row", }
},
Object {
"alignItems": "center",
},
]
} }
> >
<View <View
@ -36443,14 +36378,9 @@ exports[`Storyshots Message list message 1`] = `
> >
<View <View
style={ style={
Array [ Object {
Object { "flexDirection": "row",
"flexDirection": "row", }
},
Object {
"alignItems": "center",
},
]
} }
> >
<View <View
@ -36591,14 +36521,9 @@ exports[`Storyshots Message list message 1`] = `
> >
<View <View
style={ style={
Array [ Object {
Object { "flexDirection": "row",
"flexDirection": "row", }
},
Object {
"alignItems": "center",
},
]
} }
> >
<View <View
@ -41972,14 +41897,9 @@ exports[`Storyshots Message list message 1`] = `
> >
<View <View
style={ style={
Array [ Object {
Object { "flexDirection": "row",
"flexDirection": "row", }
},
Object {
"alignItems": "center",
},
]
} }
> >
<View <View
@ -42061,25 +41981,48 @@ exports[`Storyshots Message list message 1`] = `
] ]
} }
> >
<Text <Text>
accessibilityLabel="Message removed" <Text
style={ disabled={false}
Array [ onPress={[Function]}
Object { style={
"backgroundColor": "transparent", Array [
"fontFamily": "System", Object {
"fontSize": 16, "backgroundColor": "transparent",
"fontStyle": "italic", "fontFamily": "System",
"fontWeight": "400", "fontSize": 16,
"textAlign": "left", "fontWeight": "500",
}, "textAlign": "left",
Object { },
"color": "#9ca2a8", Object {
}, "color": "#0d0e12",
] },
} ]
> }
Message removed >
diego.mello
</Text>
<Text
accessibilityLabel="Message removed"
style={
Array [
Object {
"backgroundColor": "transparent",
"fontFamily": "System",
"fontSize": 16,
"fontStyle": "italic",
"fontWeight": "400",
"textAlign": "left",
},
Object {
"color": "#9ca2a8",
},
]
}
>
Message removed
</Text>
</Text> </Text>
</View> </View>
</View> </View>
@ -42139,14 +42082,9 @@ exports[`Storyshots Message list message 1`] = `
> >
<View <View
style={ style={
Array [ Object {
Object { "flexDirection": "row",
"flexDirection": "row", }
},
Object {
"alignItems": "center",
},
]
} }
> >
<View <View
@ -42228,25 +42166,48 @@ exports[`Storyshots Message list message 1`] = `
] ]
} }
> >
<Text <Text>
accessibilityLabel="Has joined the channel" <Text
style={ disabled={false}
Array [ onPress={[Function]}
Object { style={
"backgroundColor": "transparent", Array [
"fontFamily": "System", Object {
"fontSize": 16, "backgroundColor": "transparent",
"fontStyle": "italic", "fontFamily": "System",
"fontWeight": "400", "fontSize": 16,
"textAlign": "left", "fontWeight": "500",
}, "textAlign": "left",
Object { },
"color": "#9ca2a8", Object {
}, "color": "#0d0e12",
] },
} ]
> }
Has joined the channel >
diego.mello
</Text>
<Text
accessibilityLabel="has joined the channel"
style={
Array [
Object {
"backgroundColor": "transparent",
"fontFamily": "System",
"fontSize": 16,
"fontStyle": "italic",
"fontWeight": "400",
"textAlign": "left",
},
Object {
"color": "#9ca2a8",
},
]
}
>
has joined the channel
</Text>
</Text> </Text>
</View> </View>
</View> </View>
@ -42306,14 +42267,9 @@ exports[`Storyshots Message list message 1`] = `
> >
<View <View
style={ style={
Array [ Object {
Object { "flexDirection": "row",
"flexDirection": "row", }
},
Object {
"alignItems": "center",
},
]
} }
> >
<View <View
@ -42473,14 +42429,9 @@ exports[`Storyshots Message list message 1`] = `
> >
<View <View
style={ style={
Array [ Object {
Object { "flexDirection": "row",
"flexDirection": "row", }
},
Object {
"alignItems": "center",
},
]
} }
> >
<View <View
@ -42562,25 +42513,48 @@ exports[`Storyshots Message list message 1`] = `
] ]
} }
> >
<Text <Text>
accessibilityLabel="Message pinned" <Text
style={ disabled={false}
Array [ onPress={[Function]}
Object { style={
"backgroundColor": "transparent", Array [
"fontFamily": "System", Object {
"fontSize": 16, "backgroundColor": "transparent",
"fontStyle": "italic", "fontFamily": "System",
"fontWeight": "400", "fontSize": 16,
"textAlign": "left", "fontWeight": "500",
}, "textAlign": "left",
Object { },
"color": "#9ca2a8", Object {
}, "color": "#0d0e12",
] },
} ]
> }
Message pinned >
diego.mello
</Text>
<Text
accessibilityLabel="Message pinned"
style={
Array [
Object {
"backgroundColor": "transparent",
"fontFamily": "System",
"fontSize": 16,
"fontStyle": "italic",
"fontWeight": "400",
"textAlign": "left",
},
Object {
"color": "#9ca2a8",
},
]
}
>
Message pinned
</Text>
</Text> </Text>
</View> </View>
</View> </View>
@ -42640,14 +42614,9 @@ exports[`Storyshots Message list message 1`] = `
> >
<View <View
style={ style={
Array [ Object {
Object { "flexDirection": "row",
"flexDirection": "row", }
},
Object {
"alignItems": "center",
},
]
} }
> >
<View <View
@ -42729,25 +42698,48 @@ exports[`Storyshots Message list message 1`] = `
] ]
} }
> >
<Text <Text>
accessibilityLabel="Has left the channel" <Text
style={ disabled={false}
Array [ onPress={[Function]}
Object { style={
"backgroundColor": "transparent", Array [
"fontFamily": "System", Object {
"fontSize": 16, "backgroundColor": "transparent",
"fontStyle": "italic", "fontFamily": "System",
"fontWeight": "400", "fontSize": 16,
"textAlign": "left", "fontWeight": "500",
}, "textAlign": "left",
Object { },
"color": "#9ca2a8", Object {
}, "color": "#0d0e12",
] },
} ]
> }
Has left the channel >
diego.mello
</Text>
<Text
accessibilityLabel="has left the channel"
style={
Array [
Object {
"backgroundColor": "transparent",
"fontFamily": "System",
"fontSize": 16,
"fontStyle": "italic",
"fontWeight": "400",
"textAlign": "left",
},
Object {
"color": "#9ca2a8",
},
]
}
>
has left the channel
</Text>
</Text> </Text>
</View> </View>
</View> </View>
@ -42807,14 +42799,9 @@ exports[`Storyshots Message list message 1`] = `
> >
<View <View
style={ style={
Array [ Object {
Object { "flexDirection": "row",
"flexDirection": "row", }
},
Object {
"alignItems": "center",
},
]
} }
> >
<View <View
@ -42974,14 +42961,9 @@ exports[`Storyshots Message list message 1`] = `
> >
<View <View
style={ style={
Array [ Object {
Object { "flexDirection": "row",
"flexDirection": "row", }
},
Object {
"alignItems": "center",
},
]
} }
> >
<View <View
@ -43141,14 +43123,9 @@ exports[`Storyshots Message list message 1`] = `
> >
<View <View
style={ style={
Array [ Object {
Object { "flexDirection": "row",
"flexDirection": "row", }
},
Object {
"alignItems": "center",
},
]
} }
> >
<View <View
@ -43308,14 +43285,9 @@ exports[`Storyshots Message list message 1`] = `
> >
<View <View
style={ style={
Array [ Object {
Object { "flexDirection": "row",
"flexDirection": "row", }
},
Object {
"alignItems": "center",
},
]
} }
> >
<View <View
@ -43475,14 +43447,9 @@ exports[`Storyshots Message list message 1`] = `
> >
<View <View
style={ style={
Array [ Object {
Object { "flexDirection": "row",
"flexDirection": "row", }
},
Object {
"alignItems": "center",
},
]
} }
> >
<View <View
@ -43642,14 +43609,9 @@ exports[`Storyshots Message list message 1`] = `
> >
<View <View
style={ style={
Array [ Object {
Object { "flexDirection": "row",
"flexDirection": "row", }
},
Object {
"alignItems": "center",
},
]
} }
> >
<View <View
@ -43809,14 +43771,9 @@ exports[`Storyshots Message list message 1`] = `
> >
<View <View
style={ style={
Array [ Object {
Object { "flexDirection": "row",
"flexDirection": "row", }
},
Object {
"alignItems": "center",
},
]
} }
> >
<View <View
@ -43976,14 +43933,9 @@ exports[`Storyshots Message list message 1`] = `
> >
<View <View
style={ style={
Array [ Object {
Object { "flexDirection": "row",
"flexDirection": "row", }
},
Object {
"alignItems": "center",
},
]
} }
> >
<View <View
@ -44143,14 +44095,9 @@ exports[`Storyshots Message list message 1`] = `
> >
<View <View
style={ style={
Array [ Object {
Object { "flexDirection": "row",
"flexDirection": "row", }
},
Object {
"alignItems": "center",
},
]
} }
> >
<View <View
@ -44310,14 +44257,9 @@ exports[`Storyshots Message list message 1`] = `
> >
<View <View
style={ style={
Array [ Object {
Object { "flexDirection": "row",
"flexDirection": "row", }
},
Object {
"alignItems": "center",
},
]
} }
> >
<View <View
@ -44477,14 +44419,9 @@ exports[`Storyshots Message list message 1`] = `
> >
<View <View
style={ style={
Array [ Object {
Object { "flexDirection": "row",
"flexDirection": "row", }
},
Object {
"alignItems": "center",
},
]
} }
> >
<View <View

View File

@ -6,7 +6,8 @@ import equal from 'deep-equal';
import I18n from '../../i18n'; import I18n from '../../i18n';
import styles from './styles'; import styles from './styles';
import Markdown from '../markdown'; import Markdown from '../markdown';
import { getInfoMessage } from './utils'; import User from './User';
import { getInfoMessage, SYSTEM_MESSAGE_TYPES_WITH_AUTHOR_NAME } from './utils';
import { themes } from '../../constants/colors'; import { themes } from '../../constants/colors';
import MessageContext from './Context'; import MessageContext from './Context';
import Encrypted from './Encrypted'; import Encrypted from './Encrypted';
@ -15,13 +16,25 @@ import { E2E_MESSAGE_TYPE } from '../../lib/encryption/constants';
const Content = React.memo((props) => { const Content = React.memo((props) => {
if (props.isInfo) { if (props.isInfo) {
const infoMessage = getInfoMessage({ ...props }); const infoMessage = getInfoMessage({ ...props });
return (
const renderMessageContent = (
<Text <Text
style={[styles.textInfo, { color: themes[props.theme].auxiliaryText }]} style={[styles.textInfo, { color: themes[props.theme].auxiliaryText }]}
accessibilityLabel={infoMessage} accessibilityLabel={infoMessage}
>{infoMessage} >
{infoMessage}
</Text> </Text>
); );
if (SYSTEM_MESSAGE_TYPES_WITH_AUTHOR_NAME.includes(props.type)) {
return (
<Text>
<User {...props} /> {renderMessageContent}
</Text>
);
}
return renderMessageContent;
} }
const isPreview = props.tmid && !props.isThreadRoom; const isPreview = props.tmid && !props.isThreadRoom;

View File

@ -68,7 +68,7 @@ const Message = React.memo((props) => {
return ( return (
<View style={[styles.container, props.style]}> <View style={[styles.container, props.style]}>
{thread} {thread}
<View style={[styles.flex, styles.center]}> <View style={styles.flex}>
<MessageAvatar small {...props} /> <MessageAvatar small {...props} />
<View <View
style={[ style={[

View File

@ -12,6 +12,7 @@ import MessageError from './MessageError';
import sharedStyles from '../../views/Styles'; import sharedStyles from '../../views/Styles';
import messageStyles from './styles'; import messageStyles from './styles';
import MessageContext from './Context'; import MessageContext from './Context';
import { SYSTEM_MESSAGE_TYPES_WITH_AUTHOR_NAME } from './utils';
const styles = StyleSheet.create({ const styles = StyleSheet.create({
container: { container: {
@ -24,6 +25,10 @@ const styles = StyleSheet.create({
lineHeight: 22, lineHeight: 22,
...sharedStyles.textMedium ...sharedStyles.textMedium
}, },
usernameInfoMessage: {
fontSize: 16,
...sharedStyles.textMedium
},
titleContainer: { titleContainer: {
flex: 1, flex: 1,
flexDirection: 'row', flexDirection: 'row',
@ -36,7 +41,7 @@ const styles = StyleSheet.create({
}); });
const User = React.memo(({ const User = React.memo(({
isHeader, useRealName, author, alias, ts, timeFormat, hasError, theme, navToRoomInfo, ...props isHeader, useRealName, author, alias, ts, timeFormat, hasError, theme, navToRoomInfo, type, ...props
}) => { }) => {
if (isHeader || hasError) { if (isHeader || hasError) {
const navParam = { const navParam = {
@ -47,17 +52,37 @@ const User = React.memo(({
const username = (useRealName && author.name) || author.username; const username = (useRealName && author.name) || author.username;
const aliasUsername = alias ? (<Text style={[styles.alias, { color: themes[theme].auxiliaryText }]}> @{username}</Text>) : null; const aliasUsername = alias ? (<Text style={[styles.alias, { color: themes[theme].auxiliaryText }]}> @{username}</Text>) : null;
const time = moment(ts).format(timeFormat); const time = moment(ts).format(timeFormat);
const onUserPress = () => navToRoomInfo(navParam);
const isDisabled = author._id === user.id;
const textContent = (
<>
{alias || username}
{aliasUsername}
</>
);
if (SYSTEM_MESSAGE_TYPES_WITH_AUTHOR_NAME.includes(type)) {
return (
<Text
style={[styles.usernameInfoMessage, { color: themes[theme].titleText }]}
onPress={onUserPress}
disabled={isDisabled}
>
{textContent}
</Text>
);
}
return ( return (
<View style={styles.container}> <View style={styles.container}>
<TouchableOpacity <TouchableOpacity
style={styles.titleContainer} style={styles.titleContainer}
onPress={() => navToRoomInfo(navParam)} onPress={onUserPress}
disabled={author._id === user.id} disabled={isDisabled}
> >
<Text style={[styles.username, { color: themes[theme].titleText }]} numberOfLines={1}> <Text style={[styles.username, { color: themes[theme].titleText }]} numberOfLines={1}>
{alias || username} {textContent}
{aliasUsername}
</Text> </Text>
</TouchableOpacity> </TouchableOpacity>
<Text style={[messageStyles.time, { color: themes[theme].auxiliaryText }]}>{time}</Text> <Text style={[messageStyles.time, { color: themes[theme].auxiliaryText }]}>{time}</Text>
@ -77,7 +102,8 @@ User.propTypes = {
ts: PropTypes.instanceOf(Date), ts: PropTypes.instanceOf(Date),
timeFormat: PropTypes.string, timeFormat: PropTypes.string,
theme: PropTypes.string, theme: PropTypes.string,
navToRoomInfo: PropTypes.func navToRoomInfo: PropTypes.func,
type: PropTypes.string
}; };
User.displayName = 'MessageUser'; User.displayName = 'MessageUser';

View File

@ -26,9 +26,6 @@ export default StyleSheet.create({
messageContentWithError: { messageContentWithError: {
marginLeft: 0 marginLeft: 0
}, },
center: {
alignItems: 'center'
},
flex: { flex: {
flexDirection: 'row' flexDirection: 'row'
// flex: 1 // flex: 1

View File

@ -40,6 +40,24 @@ export const SYSTEM_MESSAGES = [
'thread-created' 'thread-created'
]; ];
export const SYSTEM_MESSAGE_TYPES = {
MESSAGE_REMOVED: 'rm',
MESSAGE_PINNED: 'message_pinned',
MESSAGE_SNIPPETED: 'message_snippeted',
USER_JOINED_CHANNEL: 'uj',
USER_JOINED_DISCUSSION: 'ut',
USER_LEFT_CHANNEL: 'ul'
};
export const SYSTEM_MESSAGE_TYPES_WITH_AUTHOR_NAME = [
SYSTEM_MESSAGE_TYPES.MESSAGE_REMOVED,
SYSTEM_MESSAGE_TYPES.MESSAGE_PINNED,
SYSTEM_MESSAGE_TYPES.MESSAGE_SNIPPETED,
SYSTEM_MESSAGE_TYPES.USER_JOINED_CHANNEL,
SYSTEM_MESSAGE_TYPES.USER_JOINED_DISCUSSION,
SYSTEM_MESSAGE_TYPES.USER_LEFT_CHANNEL
];
export const getInfoMessage = ({ export const getInfoMessage = ({
type, role, msg, author type, role, msg, author
}) => { }) => {

View File

@ -167,7 +167,7 @@ export default {
Create_Channel: 'Create Channel', Create_Channel: 'Create Channel',
Create_Direct_Messages: 'Create Direct Messages', Create_Direct_Messages: 'Create Direct Messages',
Create_Discussion: 'Create Discussion', Create_Discussion: 'Create Discussion',
Created_snippet: 'Created a snippet', Created_snippet: 'created a snippet',
Create_a_new_workspace: 'Create a new workspace', Create_a_new_workspace: 'Create a new workspace',
Create: 'Create', Create: 'Create',
Custom_Status: 'Custom Status', Custom_Status: 'Custom Status',
@ -247,9 +247,9 @@ export default {
Group_by_favorites: 'Group favorites', Group_by_favorites: 'Group favorites',
Group_by_type: 'Group by type', Group_by_type: 'Group by type',
Hide: 'Hide', Hide: 'Hide',
Has_joined_the_channel: 'Has joined the channel', Has_joined_the_channel: 'has joined the channel',
Has_joined_the_conversation: 'Has joined the conversation', Has_joined_the_conversation: 'has joined the conversation',
Has_left_the_channel: 'Has left the channel', Has_left_the_channel: 'has left the channel',
Hide_System_Messages: 'Hide System Messages', Hide_System_Messages: 'Hide System Messages',
Hide_type_messages: 'Hide "{{type}}" messages', Hide_type_messages: 'Hide "{{type}}" messages',
How_It_Works: 'How It Works', How_It_Works: 'How It Works',

View File

@ -146,7 +146,7 @@ export default {
Whats_the_password_for_your_certificate: '¿Cuál es la contraseña de tu cerficiado?', Whats_the_password_for_your_certificate: '¿Cuál es la contraseña de tu cerficiado?',
Create_account: 'Crear una cuenta', Create_account: 'Crear una cuenta',
Create_Channel: 'Crear Sala', Create_Channel: 'Crear Sala',
Created_snippet: 'Crear snippet', Created_snippet: 'crear snippet',
Create_a_new_workspace: 'Crear un Workspace', Create_a_new_workspace: 'Crear un Workspace',
Create: 'Crear', Create: 'Crear',
Dark: 'Óscuro', Dark: 'Óscuro',
@ -192,9 +192,9 @@ export default {
Group_by_favorites: 'Agrupar por favoritos', Group_by_favorites: 'Agrupar por favoritos',
Group_by_type: 'Agrupar por tipo', Group_by_type: 'Agrupar por tipo',
Hide: 'Ocultar', Hide: 'Ocultar',
Has_joined_the_channel: 'Se ha unido al canal', Has_joined_the_channel: 'se ha unido al canal',
Has_joined_the_conversation: 'Se ha unido a la conversación', Has_joined_the_conversation: 'se ha unido a la conversación',
Has_left_the_channel: 'Ha dejado el canal', Has_left_the_channel: 'ha dejado el canal',
In_App_And_Desktop: 'In-app and Desktop', In_App_And_Desktop: 'In-app and Desktop',
In_App_and_Desktop_Alert_info: 'Muestra un banner en la parte superior de la pantalla cuando la aplicación está abierta y muestra una notificación en el escritorio', In_App_and_Desktop_Alert_info: 'Muestra un banner en la parte superior de la pantalla cuando la aplicación está abierta y muestra una notificación en el escritorio',
Invisible: 'Invisible', Invisible: 'Invisible',

View File

@ -163,7 +163,7 @@ export default {
Create_Channel: 'Créer un canal', Create_Channel: 'Créer un canal',
Create_Direct_Messages: 'Créer un message direct', Create_Direct_Messages: 'Créer un message direct',
Create_Discussion: 'Créer une Discussion', Create_Discussion: 'Créer une Discussion',
Created_snippet: 'Créé un extrait', Created_snippet: 'créé un extrait',
Create_a_new_workspace: 'Créer un nouvel espace de travail', Create_a_new_workspace: 'Créer un nouvel espace de travail',
Create: 'Créer', Create: 'Créer',
Custom_Status: 'Statut Personnalisé', Custom_Status: 'Statut Personnalisé',
@ -225,9 +225,9 @@ export default {
Group_by_favorites: 'Grouper par favoris', Group_by_favorites: 'Grouper par favoris',
Group_by_type: 'Grouper par type', Group_by_type: 'Grouper par type',
Hide: 'Cacher', Hide: 'Cacher',
Has_joined_the_channel: 'A rejoint le canal', Has_joined_the_channel: 'a rejoint le canal',
Has_joined_the_conversation: 'A rejoint la conversation', Has_joined_the_conversation: 'a rejoint la conversation',
Has_left_the_channel: 'A quitté la chaîne', Has_left_the_channel: 'a quitté la chaîne',
Hide_System_Messages: 'Masquer les messages système', Hide_System_Messages: 'Masquer les messages système',
Hide_type_messages: 'Masquer les messages "{{type}}"', Hide_type_messages: 'Masquer les messages "{{type}}"',
Message_HideType_uj: 'L\'utilisateur a rejoint', Message_HideType_uj: 'L\'utilisateur a rejoint',

View File

@ -148,7 +148,7 @@ export default {
Whats_the_password_for_your_certificate: 'Wat is het wachtwoord voor je certificate?', Whats_the_password_for_your_certificate: 'Wat is het wachtwoord voor je certificate?',
Create_account: 'Maak een account', Create_account: 'Maak een account',
Create_Channel: 'Maak een kanaal', Create_Channel: 'Maak een kanaal',
Created_snippet: 'Snippet gemaakt', Created_snippet: 'snippet gemaakt',
Create_a_new_workspace: 'Een nieuwe workspace maken', Create_a_new_workspace: 'Een nieuwe workspace maken',
Create: 'Maken', Create: 'Maken',
Dark: 'Donker', Dark: 'Donker',
@ -197,9 +197,9 @@ export default {
Group_by_favorites: 'Sorteer op favorieten', Group_by_favorites: 'Sorteer op favorieten',
Group_by_type: 'Sorteer op type', Group_by_type: 'Sorteer op type',
Hide: 'Verberg', Hide: 'Verberg',
Has_joined_the_channel: 'Is bij het kanaal gekomen', Has_joined_the_channel: 'is bij het kanaal gekomen',
Has_joined_the_conversation: 'Neemt deel aan het gesprek', Has_joined_the_conversation: 'neemt deel aan het gesprek',
Has_left_the_channel: 'Heeft het kanaal verlaten', Has_left_the_channel: 'heeft het kanaal verlaten',
In_App_And_Desktop: 'In-app en Desktop', In_App_And_Desktop: 'In-app en Desktop',
In_App_and_Desktop_Alert_info: 'Laat een banner bovenaan het scherm zien als de app open is en geeft een notificatie op de desktop', In_App_and_Desktop_Alert_info: 'Laat een banner bovenaan het scherm zien als de app open is en geeft een notificatie op de desktop',
Invisible: 'Onzichtbaar', Invisible: 'Onzichtbaar',

View File

@ -167,7 +167,7 @@ export default {
Create_Channel: 'Criar Canal', Create_Channel: 'Criar Canal',
Create_Direct_Messages: 'Criar Mensagens Diretas', Create_Direct_Messages: 'Criar Mensagens Diretas',
Create_Discussion: 'Criar Discussão', Create_Discussion: 'Criar Discussão',
Created_snippet: 'Criou um snippet', Created_snippet: 'criou um snippet',
Create_a_new_workspace: 'Criar nova área de trabalho', Create_a_new_workspace: 'Criar nova área de trabalho',
Create: 'Criar', Create: 'Criar',
Dark: 'Escuro', Dark: 'Escuro',
@ -241,9 +241,9 @@ export default {
Generate_New_Link: 'Gerar novo convite', Generate_New_Link: 'Gerar novo convite',
Group_by_favorites: 'Agrupar favoritos', Group_by_favorites: 'Agrupar favoritos',
Group_by_type: 'Agrupar por tipo', Group_by_type: 'Agrupar por tipo',
Has_joined_the_channel: 'Entrou no canal', Has_joined_the_channel: 'entrou no canal',
Has_joined_the_conversation: 'Entrou na conversa', Has_joined_the_conversation: 'entrou na conversa',
Has_left_the_channel: 'Saiu da conversa', Has_left_the_channel: 'saiu da conversa',
Hide_System_Messages: 'Esconder mensagens do sistema', Hide_System_Messages: 'Esconder mensagens do sistema',
Hide_type_messages: 'Esconder mensagens de "{{type}}"', Hide_type_messages: 'Esconder mensagens de "{{type}}"',
Message_HideType_uj: 'Utilizador Entrou', Message_HideType_uj: 'Utilizador Entrou',

View File

@ -130,7 +130,7 @@ export default {
Permalink: 'Link permanente', Permalink: 'Link permanente',
Create_account: 'Criar uma conta', Create_account: 'Criar uma conta',
Create_Channel: 'Criar Canal', Create_Channel: 'Criar Canal',
Created_snippet: 'Criado um extracto', Created_snippet: 'criado um extracto',
Create_a_new_workspace: 'Criar um novo espaço de trabalho', Create_a_new_workspace: 'Criar um novo espaço de trabalho',
Create: 'Criar', Create: 'Criar',
Delete_Room_Warning: 'Apagar uma sala irá remover todas as mensagens contidas nela. Isto não pode ser desfeito.', Delete_Room_Warning: 'Apagar uma sala irá remover todas as mensagens contidas nela. Isto não pode ser desfeito.',
@ -163,9 +163,9 @@ export default {
Forgot_Password: 'Esquecer Palavra-passe', Forgot_Password: 'Esquecer Palavra-passe',
Group_by_favorites: 'Agrupar por favoritos', Group_by_favorites: 'Agrupar por favoritos',
Group_by_type: 'Agrupar por tipo', Group_by_type: 'Agrupar por tipo',
Has_joined_the_channel: 'Entrou no canal', Has_joined_the_channel: 'entrou no canal',
Has_joined_the_conversation: 'Entrou na conversa', Has_joined_the_conversation: 'entrou na conversa',
Has_left_the_channel: 'Saiu do canal', Has_left_the_channel: 'saiu do canal',
Invisible: 'Invisível', Invisible: 'Invisível',
Invite: 'Convidar', Invite: 'Convidar',
is_a_valid_RocketChat_instance: 'é uma instância válida do Rocket.Chat', is_a_valid_RocketChat_instance: 'é uma instância válida do Rocket.Chat',

View File

@ -167,7 +167,7 @@ export default {
Create_Channel: 'Создать канал', Create_Channel: 'Создать канал',
Create_Direct_Messages: 'Создать личное сообщение', Create_Direct_Messages: 'Создать личное сообщение',
Create_Discussion: 'Создать обсуждение', Create_Discussion: 'Создать обсуждение',
Created_snippet: 'Создать сниппет', Created_snippet: 'создать сниппет',
Create_a_new_workspace: 'Новое рабочее пространство', Create_a_new_workspace: 'Новое рабочее пространство',
Create: 'Создать', Create: 'Создать',
Custom_Status: 'Персонализированный Статус', Custom_Status: 'Персонализированный Статус',
@ -247,9 +247,9 @@ export default {
Group_by_favorites: 'По избранным', Group_by_favorites: 'По избранным',
Group_by_type: 'По типу', Group_by_type: 'По типу',
Hide: 'Скрыть', Hide: 'Скрыть',
Has_joined_the_channel: 'Присоединился к каналу', Has_joined_the_channel: 'присоединился к каналу',
Has_joined_the_conversation: 'Присоединился к беседе', Has_joined_the_conversation: 'присоединился к беседе',
Has_left_the_channel: 'Покинул канал', Has_left_the_channel: 'покинул канал',
Hide_System_Messages: 'Скрыть Системные Сообщения', Hide_System_Messages: 'Скрыть Системные Сообщения',
Hide_type_messages: 'Скрыть "{{type}}" сообщения', Hide_type_messages: 'Скрыть "{{type}}" сообщения',
How_It_Works: 'Как Это Работает', How_It_Works: 'Как Это Работает',

View File

@ -135,23 +135,23 @@ describe('Room screen', () => {
await expect(element(by.id('action-sheet-handle'))).toBeVisible(); await expect(element(by.id('action-sheet-handle'))).toBeVisible();
await element(by.id('action-sheet-handle')).swipe('up', 'fast', 0.5); await element(by.id('action-sheet-handle')).swipe('up', 'fast', 0.5);
await element(by.label('Permalink')).tap(); await element(by.label('Permalink')).tap();
// TODO: test clipboard // TODO: test clipboard
}); });
it('should copy message', async() => { it('should copy message', async() => {
await element(by.label(`${ data.random }message`)).atIndex(0).longPress(); await element(by.label(`${ data.random }message`)).atIndex(0).longPress();
await expect(element(by.id('action-sheet'))).toExist(); await expect(element(by.id('action-sheet'))).toExist();
await expect(element(by.id('action-sheet-handle'))).toBeVisible(); await expect(element(by.id('action-sheet-handle'))).toBeVisible();
await element(by.id('action-sheet-handle')).swipe('up', 'fast', 0.5); await element(by.id('action-sheet-handle')).swipe('up', 'fast', 0.5);
await element(by.label('Copy')).tap(); await element(by.label('Copy')).tap();
// TODO: test clipboard // TODO: test clipboard
}); });
it('should star message', async() => { it('should star message', async() => {
await starMessage('message') await starMessage('message')
await sleep(1000) //https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/2324 await sleep(1000) //https://github.com/RocketChat/Rocket.Chat.ReactNative/issues/2324
await element(by.label(`${ data.random }message`)).atIndex(0).longPress(); await element(by.label(`${ data.random }message`)).atIndex(0).longPress();
await expect(element(by.id('action-sheet'))).toExist(); await expect(element(by.id('action-sheet'))).toExist();
@ -160,7 +160,7 @@ describe('Room screen', () => {
await waitFor(element(by.label('Unstar'))).toBeVisible().withTimeout(2000); await waitFor(element(by.label('Unstar'))).toBeVisible().withTimeout(2000);
await element(by.id('action-sheet-backdrop')).tap(); await element(by.id('action-sheet-backdrop')).tap();
}); });
it('should react to message', async() => { it('should react to message', async() => {
await element(by.label(`${ data.random }message`)).atIndex(0).longPress(); await element(by.label(`${ data.random }message`)).atIndex(0).longPress();
await expect(element(by.id('action-sheet'))).toExist(); await expect(element(by.id('action-sheet'))).toExist();
@ -183,7 +183,7 @@ describe('Room screen', () => {
await element(by.id('message-actions-emoji-+1')).tap(); await element(by.id('message-actions-emoji-+1')).tap();
await waitFor(element(by.id('message-reaction-:+1:'))).toBeVisible().withTimeout(60000); await waitFor(element(by.id('message-reaction-:+1:'))).toBeVisible().withTimeout(60000);
}); });
it('should show reaction picker on add reaction button pressed and have frequently used emoji', async() => { it('should show reaction picker on add reaction button pressed and have frequently used emoji', async() => {
await element(by.id('message-add-reaction')).tap(); await element(by.id('message-add-reaction')).tap();
await waitFor(element(by.id('reaction-picker'))).toExist().withTimeout(2000); await waitFor(element(by.id('reaction-picker'))).toExist().withTimeout(2000);
@ -197,12 +197,12 @@ describe('Room screen', () => {
it('should ask for review', async() => { it('should ask for review', async() => {
await dismissReviewNag() //TODO: Create a proper test for this elsewhere. await dismissReviewNag() //TODO: Create a proper test for this elsewhere.
}) })
it('should remove reaction', async() => { it('should remove reaction', async() => {
await element(by.id('message-reaction-:grinning:')).tap(); await element(by.id('message-reaction-:grinning:')).tap();
await waitFor(element(by.id('message-reaction-:grinning:'))).toBeNotVisible().withTimeout(60000); await waitFor(element(by.id('message-reaction-:grinning:'))).toBeNotVisible().withTimeout(60000);
}); });
it('should edit message', async() => { it('should edit message', async() => {
await mockMessage('edit'); await mockMessage('edit');
await element(by.label(`${ data.random }edit`)).atIndex(0).longPress(); await element(by.label(`${ data.random }edit`)).atIndex(0).longPress();
@ -214,7 +214,7 @@ describe('Room screen', () => {
await element(by.id('messagebox-send-message')).tap(); await element(by.id('messagebox-send-message')).tap();
await waitFor(element(by.label(`${ data.random }edited (edited)`)).atIndex(0)).toExist().withTimeout(60000); await waitFor(element(by.label(`${ data.random }edited (edited)`)).atIndex(0)).toExist().withTimeout(60000);
}); });
it('should quote message', async() => { it('should quote message', async() => {
await mockMessage('quote'); await mockMessage('quote');
await element(by.label(`${ data.random }quote`)).atIndex(0).longPress(); await element(by.label(`${ data.random }quote`)).atIndex(0).longPress();
@ -224,16 +224,16 @@ describe('Room screen', () => {
await element(by.label('Quote')).tap(); await element(by.label('Quote')).tap();
await element(by.id('messagebox-input')).typeText(`${ data.random }quoted`); await element(by.id('messagebox-input')).typeText(`${ data.random }quoted`);
await element(by.id('messagebox-send-message')).tap(); await element(by.id('messagebox-send-message')).tap();
// TODO: test if quote was sent // TODO: test if quote was sent
}); });
it('should pin message', async() => { it('should pin message', async() => {
await mockMessage('pin') await mockMessage('pin')
await pinMessage('pin') await pinMessage('pin')
await waitFor(element(by.label(`${ data.random }pin`)).atIndex(0)).toBeVisible().withTimeout(2000); await waitFor(element(by.label(`${ data.random }pin`)).atIndex(0)).toBeVisible().withTimeout(2000);
await waitFor(element(by.label('Message pinned')).atIndex(0)).toBeVisible().withTimeout(2000); await waitFor(element(by.label(`${ data.users.regular.username } Message pinned`)).atIndex(0)).toBeVisible().withTimeout(2000);
await element(by.label(`${ data.random }pin`)).atIndex(0).longPress(); await element(by.label(`${ data.random }pin`)).atIndex(0).longPress();
await waitFor(element(by.id('action-sheet'))).toExist().withTimeout(1000); await waitFor(element(by.id('action-sheet'))).toExist().withTimeout(1000);
await expect(element(by.id('action-sheet-handle'))).toBeVisible(); await expect(element(by.id('action-sheet-handle'))).toBeVisible();
@ -361,4 +361,4 @@ describe('Room screen', () => {
// await expect(element(by.id('rooms-list-view'))).toExist(); // await expect(element(by.id('rooms-list-view'))).toExist();
// }); // });
}); });
}); });