diff --git a/__tests__/__snapshots__/Storyshots.test.js.snap b/__tests__/__snapshots__/Storyshots.test.js.snap index d5231909aa..46237d3a71 100644 --- a/__tests__/__snapshots__/Storyshots.test.js.snap +++ b/__tests__/__snapshots__/Storyshots.test.js.snap @@ -1038,287 +1038,120 @@ exports[`Storyshots Avatar list Avatar 1`] = ` `; -exports[`Storyshots List header 1`] = ` - - - - - Chats - - - - - Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries - - - - -`; - -exports[`Storyshots List icon 1`] = ` - - - - -  - - - - -`; - -exports[`Storyshots List pressable 1`] = ` - - - - View - - View - - - -`; - -exports[`Storyshots List separator 1`] = ` - - - - - -`; - -exports[`Storyshots List title and subtitle 1`] = ` - - + > - + +  + - Chats + 1 - - - - + +  + - Chats + 1 + + + + +  + + - All + 1 + + + +`; + +exports[`Storyshots Header Buttons common 1`] = ` +Array [ + - - Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries +  + + + + + , + + + + - Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries +  + + , + - - -`; - -exports[`Storyshots List with FlatList 1`] = ` - - - + > - - - - - - - 0 - - - + Cancel + - + + , + + + + - - - - 1 - - - +  + - + + , + + + - - - - 2 - - - +  + - + + , + + + - - - - 3 - - - +  + - + + , + + + - - - - 4 - - - +  + - + + , +] +`; + +exports[`Storyshots Header Buttons icons 1`] = ` +Array [ + + - - - - 5 - - - +  + - + - - - - 6 - - - +  + - + + , + + - - - - 7 - - - +  + - - - - - - - 8 - - - +  + - + - - - - 9 - - - +  + - - - - - - - - -`; - -exports[`Storyshots List with bigger font 1`] = ` - - - - - - Chats +  + + + , +] +`; + +exports[`Storyshots Header Buttons themes 1`] = ` +Array [ + + + - View - - View - - - Chats +  + - Chats + Threads - View - - View - - - Chats +  - - -`; - -exports[`Storyshots List with black theme 1`] = ` - - , + - + - - Chats - - - - View - - View - - - Chats +  + - Chats + Threads - View - - View - - - Chats +  - - -`; - -exports[`Storyshots List with custom color 1`] = ` -, + - + > - - Chats +  - - - - -`; - -exports[`Storyshots List with dark theme 1`] = ` - - - + - Chats + Threads - View - - View - - - Chats +  + + , +] +`; + +exports[`Storyshots Header Buttons title 1`] = ` +Array [ + + - - Chats - - - - View - - View - - @@ -3187,402 +3214,633 @@ exports[`Storyshots List with dark theme 1`] = ` Object { "backgroundColor": "transparent", "fontFamily": "System", - "fontSize": 14, + "fontSize": 17, "fontWeight": "400", }, Object { - "color": "#6D6D72", + "color": "#6C727A", }, ] } > - Chats + threads - - - -`; - -exports[`Storyshots List with icon 1`] = ` - - - - + /> - - -  - - - - - Icon Left + threads + , + - - Icon Right + threads - - -  - - + search + - - - + /> - - -  - - - - - Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries + threads + + - Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries + search - - - -  - - + + + , +] +`; + +exports[`Storyshots List header 1`] = ` + + + + + Chats + + + + + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries + + + + +`; + +exports[`Storyshots List icon 1`] = ` + + + + +  + + + + +`; + +exports[`Storyshots List pressable 1`] = ` + + + + View + + View + + + +`; + +exports[`Storyshots List separator 1`] = ` + + + + + +`; + +exports[`Storyshots List title and subtitle 1`] = ` + + + + + + + + Chats + @@ -3647,45 +3905,111 @@ exports[`Storyshots List with icon 1`] = ` ] } > - Show Action Indicator + Chats + + + All + + + + + - - -  - - + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries + + + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries + @@ -3706,7 +4030,7 @@ exports[`Storyshots List with icon 1`] = ` `; -exports[`Storyshots List with section and info 1`] = ` +exports[`Storyshots List with FlatList 1`] = ` + + - Section Item + 0 @@ -3828,6 +4203,11 @@ exports[`Storyshots List with section and info 1`] = ` ] } /> + + - Section Item + 1 @@ -3896,25 +4276,9 @@ exports[`Storyshots List with section and info 1`] = ` /> - - Section Item + 2 @@ -3981,6 +4345,11 @@ exports[`Storyshots List with section and info 1`] = ` ] } /> + + - Section Item + 3 @@ -4049,38 +4418,61 @@ exports[`Storyshots List with section and info 1`] = ` /> - - Chats - + + + 4 + + + + + - Section Item + 5 @@ -4161,6 +4558,11 @@ exports[`Storyshots List with section and info 1`] = ` ] } /> + + - Section Item + 6 @@ -4227,66 +4629,63 @@ exports[`Storyshots List with section and info 1`] = ` ] } /> - - - Chats - - - - Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries - + + + 7 + + + + + - Section Item + 8 @@ -4367,6 +4771,11 @@ exports[`Storyshots List with section and info 1`] = ` ] } /> + + - Section Item + 9 @@ -4433,39 +4842,37 @@ exports[`Storyshots List with section and info 1`] = ` ] } /> + + + - - Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries - - + /> `; -exports[`Storyshots List with small font 1`] = ` +exports[`Storyshots List with bigger font 1`] = ` `; -exports[`Storyshots Markdown list Markdown 1`] = ` - - - - Short Text - - - + + - + + Chats + + + + View + + View + + + + Chats + + + + + + + Chats + + + + View + + View + + - This is Rocket.Chat - - + + Chats + + + - + +`; + +exports[`Storyshots List with custom color 1`] = ` + + + - Long Text - + /> - - + - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. - - + Object { + "color": "red", + }, + ] + } + > + Chats + + + - - Line Break Text - - + + +`; + +exports[`Storyshots List with dark theme 1`] = ` + + - + + - + - a - - - - - - + Chats + + + - b - - - - - - + View + - c - - - - - - - - - - + View + + + + Chats + + + + + - d - - - - - - - - - - - - - - + Chats + + + - e - - - - - Edited - - - - + View + - This is edited - - + View + + - ( - edited - ) - - + + Chats + + + - + +`; + +exports[`Storyshots List with icon 1`] = ` + + + - Preview - + /> - - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. - - - a b c d e - - - @rocket.cat @name1 @all @here @unknown #general #unknown - - + + +  + + + + - Testing: 😃 👍 :marioparty: - + "flex": 1, + "justifyContent": "center", + } + } + > + + Icon Left + + + - - Mentions - + /> - - - rocket.cat - - - - - + Icon Right + + + - name1 - - + +  + + + + + + + + + - - - + +  + + + + - all - - - - - - here - - + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries + + - - - + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries + + + - @unknown - - + + +  + + + + - - Mentions with Real Name - + /> - - - Rocket Cat - - - - - - Name - - - - - + Show Action Indicator + + + - all - - - - - - here - - - - - - @unknown - - + "alignItems": "center", + "justifyContent": "center", + } + } + > + +  + + + + - - Hashtag - - + + +`; + +exports[`Storyshots List with section and info 1`] = ` + + - + + - - #test-channel - - + + - - - + + + Section Item + + + + + - #unknown - - - - - Emoji - - - - + - Unicode: 😃😇👍 - - - - - Shortnames: - - - 😂 - - + + + Section Item + + + + + - 👍 - - - + + - - Custom emojis: - + /> + - + + > + + Section Item + + + - - - + /> - - - - - + undefined, + Object { + "height": 92, + }, + ] + } + > + + + Section Item + + + + - - - - + + - + - 😃 - - + Chats + + + - 👍 - - + + - - - - + + > + + Section Item + + + - - - - Block Quote - - - - - + - This is block quote - - + Object { + "color": "#0d0e12", + }, + ] + } + > + Section Item + + + - - - + - this is a normal line - - - - - Links - - - + Chats + + + + - - Markdown link + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries - - + + + + + + Section Item + + + + + + - : - - + + + Section Item + + + + + + - [description](url) - - - + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries + + + + + + +`; + +exports[`Storyshots List with small font 1`] = ` + + + + - - Formatted Link + Chats - - + - : - - + View + - <url|description> - - - - - Image - - - - + View + + - - - - Headers - - - - + - Header 1 - - - + Chats + + + + - + - Header 2 - - - - + Chats + + + - Header 3 - - - - + View + - Header 4 - - - - + View + + + - Header 5 - - + Object { + "color": "#6d6d72", + }, + ] + } + > + Chats + + + + + + +`; + +exports[`Storyshots Markdown list Markdown 1`] = ` + + + + Short Text + + - Header 6 + This is Rocket.Chat @@ -6943,7 +7312,7 @@ exports[`Storyshots Markdown list Markdown 1`] = ` ] } > - Inline Code + Long Text - This is - - - inline code + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. @@ -7026,7 +7378,7 @@ exports[`Storyshots Markdown list Markdown 1`] = ` ] } > - Code Block + Line Break Text - Inline + a + + + + - code + b + + + + - has + c + + + + + + + + - back-ticks around + d + + + + + + + + + + + + - it. + e - - Code block - - - Lists + Edited - - - - • - - - + - - - Open Source - - - - - - - - • - - - - - - Rocket.Chat - - - - - - ◦ - - - - - - nodejs - - - - - - - - ◦ - - - - - - ReactNative - - - - - - + ( + edited + ) + + - Numbered Lists + Preview - - - - 1. - - - + - - - Open Source - - - - - + a b c d e + + - - - 2. - - - + - - - Rocket.Chat - - - - + "backgroundColor": "transparent", + "fontFamily": "System", + "fontSize": 16, + "fontWeight": "400", + }, + Object { + "color": "#2f343d", + }, + ] + } + > + Testing: 😃 👍 :marioparty: + - Emphasis + Mentions + rocket.cat + + - Strong emphasis, aka bold, with + + name1 + + + + + + all + + - asterisks + + here + + - or + + @unknown + + + + + Mentions with Real Name + + + + + Rocket Cat + + + + + + Name + + + + + + all + + - underscores + + + + here + + + + + + @unknown @@ -7883,7 +8228,7 @@ exports[`Storyshots Markdown list Markdown 1`] = ` ] } > - Table + Hashtag - + + #test-channel + + + + + + #unknown + + + + + Emoji + + + - + Unicode: 😃😇👍 + + + + + Shortnames: + + - - - - - - - First Header - - - - - - - Second Header - - - - - - - - - Content from cell 1 - - - - - - - Content from cell 2 - - - - - - - - - Content in the first column - - - - - - - Content in the second column - - - - - - - + 😂 + + 👍 + + + + - Click to see full table + Custom emojis: - - - - -`; - -exports[`Storyshots Message list message 1`] = ` - - - - Simple - - - - - - - - - - - - + + + + + + - - - - diego.mello - - - - 10:00 AM - - - - - - Message - - - - - + } + style={ + Object { + "bottom": 0, + "left": 0, + "position": "absolute", + "right": 0, + "top": 0, + } + } + /> - + + + + + + + + + + 😃 + + + 👍 + + + + + + + + - Long message + Block Quote - + + - - - - - - - - - - - - - diego.mello - - - - 10:00 AM - - - - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. - - - - - + This is block quote + + + + + this is a normal line + + - Grouped messages + Links - - + - - - - - - - - - + Markdown link + + + + : + + + [description](url) + + + + + - - - - diego.mello - - - - 10:00 AM - - - - - - ... - - - - - - - - - - - + Formatted Link + + + - + - - - - - - - - - - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. - - - - 10:00 AM - - - - - - Different user - - - - - - - + "backgroundColor": "#f1f2f4", + "borderColor": "#f1f2f4", + "borderRadius": 4, + "borderWidth": 1, + "color": "#2f343d", + "fontFamily": "Courier New", + "fontWeight": "400", + }, + ] + } + > + <url|description> + + + + Image + - - + - - - - - - This is the third message - - - - - - - + } + /> + + + Headers + - - + - + + + - - - - - This is the second message - - - - - - - - - + Header 2 + + + - - + - + + + - - - - - - - - - - - - diego.mello - - - - 10:00 AM - - - - - - This is the first message - - - - - - - + "backgroundColor": "transparent", + "fontFamily": "System", + "fontSize": 16, + "fontWeight": "400", + }, + Array [ + Object {}, + Object { + "backgroundColor": "transparent", + "fontFamily": "System", + "fontSize": 18, + "fontWeight": "600", + }, + ], + ] + } + > + Header 4 + + + + + Header 5 + + + + + Header 6 + + - Without header + Inline Code - - + - - - - - - Message - - - - - - - + Array [ + Object {}, + Object { + "alignItems": "flex-start", + "flexDirection": "row", + "flexWrap": "wrap", + "justifyContent": "flex-start", + "marginBottom": 0, + "marginTop": 0, + }, + ], + ] + } + > + This is + + + inline code + + - With alias + Code Block - + + + Inline + + + code + + + has + + + back-ticks around + + + it. + + + + Code block + + + + + Lists + + + - - + + + + + Open Source + + + + + + + + • + + + + + - - - - - - + Rocket.Chat + + + - - + + + - - Diego Mello - - @ - diego.mello - - - + "color": "#2f343d", + }, + ] + } + > - 10:00 AM - - - - - - Message - + ], + ] + } + > + nodejs - + - - - - - - - - - - - + ◦ + - - - - Diego Mello - - @ - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. - - - - 10:00 AM - - - - - - Message - + ], + ] + } + > + ReactNative - + @@ -10398,241 +10042,177 @@ exports[`Storyshots Message list message 1`] = ` "color": "#0d0e12", }, Object { - "marginBottom": 0, - "marginTop": 30, + "marginHorizontal": 10, + "marginVertical": 10, }, ] } > - Edited + Numbered Lists - + - - + + + + - - - - - - - + + + + + + + 2. + + + + + - - - - diego.mello - - - - 10:00 AM - - - - - - Message - - - - - + Rocket.Chat + + @@ -10649,306 +10229,652 @@ exports[`Storyshots Message list message 1`] = ` "color": "#0d0e12", }, Object { - "marginBottom": 0, - "marginTop": 30, + "marginHorizontal": 10, + "marginVertical": 10, }, ] } > - Encrypted + Emphasis - - + - + + asterisks + + + or + + + underscores + + + + + Table + + + + + } + scrollEnabled={false} + showsVerticalScrollIndicator={false} + style={ + Array [ + Object { + "borderBottomWidth": 1, + "borderRightWidth": 1, + }, + Object { + "borderColor": "#e1e5e8", + "maxHeight": 300, + "maxWidth": 200, + }, + ] + } + > + - - - - - - - - diego.mello + + First Header + - - 10:00 AM - + + + Second Header + + + - - + - - + + + + + - Message - + undefined, + undefined, + ], + ] + } + > + Content from cell 2 - - + + + + + + Content in the first column + + + + + + -  + Content in the second column - + - + + + Click to see full table + + + +`; + +exports[`Storyshots Message list message 1`] = ` + + + + Simple + + + + + + + + - + - - - - Message Encrypted without Header - - - - + + - + 10:00 AM + + + + + -  - - - + ], + ] + } + > + Message + + + + Long message + - - - - - Message Encrypted with Reactions - - - - + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. + + + + + + + + + + Grouped messages + + + + + + + + + - -  - - + /> + + - - - 😂 - - - 1 - - + diego.mello + - - - - - - - 1 - - - - - - - 🤔 - - - 1 - - - - - - -  - - - - - - - - - - - - - - -  - - - Thread with emoji🙂 😂 - - - -  - - - - - - - - - + 10:00 AM + - - - Thread reply encrypted + + ... + @@ -12054,7 +11694,7 @@ exports[`Storyshots Message list message 1`] = ` Object { "headers": undefined, "priority": "high", - "uri": "https://open.rocket.chat/avatar/diego.mello?format=png&size=100", + "uri": "https://open.rocket.chat/avatar/Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.?format=png&size=100", } } style={ @@ -12128,7 +11768,7 @@ exports[`Storyshots Message list message 1`] = ` ] } > - diego.mello + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. - - + - - - - Temp message encrypted - - - - - + + + + + + + + + + + + + + + + This is the third message + + + + + + + + + + + + + + + + -  - - - + ], + ] + } + > + This is the second message + + @@ -12450,220 +12210,236 @@ exports[`Storyshots Message list message 1`] = ` - - - - - Message Edited encrypted - - - - - -  - - - + This is the first message + + - - + Without header + + + } + > + - - + + > + + Message + + + + + + + With alias + + + + - - diego.mello - - - - 10:00 AM - - - -  - + "bottom": 0, + "left": 0, + "position": "absolute", + "right": 0, + "top": 0, + } + } + /> + - + + Diego Mello - This message has error and is encrypted + @ + diego.mello - + 10:00 AM + + + + -  + Message - + @@ -12966,7 +12726,7 @@ exports[`Storyshots Message list message 1`] = ` Object { "headers": undefined, "priority": "high", - "uri": "https://open.rocket.chat/avatar/diego.mello?format=png&size=100", + "uri": "https://open.rocket.chat/avatar/Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.?format=png&size=100", } } style={ @@ -13040,7 +12800,25 @@ exports[`Storyshots Message list message 1`] = ` ] } > - diego.mello + Diego Mello + + @ + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. + - - - - - Read Receipt encrypted with Header - - - - - -  - - - - - - -  - - - - - - - - - - - - - - - - Read Receipt encrypted without Header - - - - - -  - - - + Message + + - -  - @@ -13390,7 +12906,7 @@ exports[`Storyshots Message list message 1`] = ` ] } > - Block Quote + Edited - - - - - - Testing block quote - - - - + ], + ] + } + > + Message + + + + Encrypted + - - Testing block quote + Message - - - + - Testing block quote - - + undefined, + Object { + "fontFamily": "custom", + "fontStyle": "normal", + "fontWeight": "normal", + }, + Object {}, + ] + } + > +  + + + - - Lists - - + - - - - - - - - - diego.mello - - - - 10:00 AM - - - - - - - • - - - @@ -14211,7 +13526,7 @@ exports[`Storyshots Message list message 1`] = ` } > - Dogs + Message Encrypted without Header - + - - - ◦ - - - - - - cats - - - - - + - - - ◦ - - - - - - cats - - - - +  + @@ -14414,27 +13607,6 @@ exports[`Storyshots Message list message 1`] = ` - - Numerated lists - - - - 1. - - - Dogs + Message Encrypted with Reactions + + +  + + + + - 2. + 😂 - - - + + + + + + - Cats - + style={ + Object { + "bottom": 0, + "left": 0, + "position": "absolute", + "right": 0, + "top": 0, + } + } + /> + + + 1 + + + + + + + 🤔 + + + 1 + + + + + + +  @@ -14788,27 +14237,238 @@ exports[`Storyshots Message list message 1`] = ` - - Numerated lists in separated messages - + + + + +  + + + Thread with emoji🙂 😂 + + + +  + + + + + + + + + + + + + + + Thread reply encrypted + + + + + + + - + - - - 1. - - - Dogs + Temp message encrypted - - - - - - - - - - - - - - - - 2. - - - - - Cats - +  @@ -15217,27 +14767,6 @@ exports[`Storyshots Message list message 1`] = ` - - Static avatar - - - + + + Message Edited encrypted + + + + - Message - - + +  + + + - - Full name - - + - + > + + + + + + + - - - + diego.mello + - - + 10:00 AM + + + "opacity": 1, + "paddingLeft": 10, + "paddingVertical": 5, + } + } + > + +  + + + + - Diego Mello + + This message has error and is encrypted + - - 10:00 AM - - - - - Message +  - + - - Mentions - - - - rocket.cat - - + + Read Receipt encrypted with Header + + + + - - - - diego.mello - - - - - - all - - - - - - here - - - - - - #general - - + ] + } + > +  + + + - - - - - +  + + + + + + - - - - - - - - + - - diego.mello - - - - 10:00 AM - - - - - - rocket.cat - - - Lorem ipsum dolor - - - diego.mello - - + + Read Receipt encrypted without Header + + + + - sit amet, - - - all - - - consectetur adipiscing - - - here - - - elit, sed do eiusmod tempor - - - #general - - - incididunt ut labore et dolore magna aliqua. - - + ] + } + > +  + + + + +  + @@ -16584,7 +15892,7 @@ exports[`Storyshots Message list message 1`] = ` ] } > - Emojis + Block Quote - - + - 👊🤙👏 - - + + + Testing block quote + + + + - - Single Emoji - + + + + + + Testing block quote + + + + - 👏 + Testing block quote @@ -17096,7 +16476,7 @@ exports[`Storyshots Message list message 1`] = ` ] } > - Custom Emojis + Lists - - + > + • + - - - - - + + Dogs + + + - - - - - + + + ◦ + + + - + + + cats + + + + + - - - - - - - - - - Single Custom Emojis - - - - + + + ◦ + + + + + + cats + + + + + + + + + + + + + + Numerated lists + + + + - + + 1. + + + + + + Dogs + + + + + + - + 2. + + + + + > + + Cats + + - + @@ -17748,7 +17309,7 @@ exports[`Storyshots Message list message 1`] = ` ] } > - Normal Emoji + Custom Emojis + Numerated lists in separated messages - - - 🤙 - - - + 1. + + + + + > + + Dogs + + - + - - Four emoji - - + - - - - - + + 2. + + + + + + Cats + + + + + + + + + + + + Static avatar + + + + + + + + + + + + + - 🤙 - - - - - - 🤙🤙 + Message @@ -18352,7 +17989,7 @@ exports[`Storyshots Message list message 1`] = ` ] } > - Time format + Full name - diego.mello + Diego Mello - 10 November 2017 + 10:00 AM @@ -18551,7 +18188,7 @@ exports[`Storyshots Message list message 1`] = ` } > - Testing + Message @@ -18603,7 +18240,7 @@ exports[`Storyshots Message list message 1`] = ` ] } > - Reactions + Mentions + rocket.cat + + - Reactions + - - - - - - + - 😂 - - - 3 - - - - - + + + - - - - + - 13 - - - - - + + + - + - 🤔 - - - 1 - - - - - + + + - -  - - - + #general + + - - Multiple reactions - + rocket.cat + + - Multiple Reactions + Lorem ipsum dolor - - - - - - + - - - + sit amet, + + + all + + - 1 - - - - - + consectetur adipiscing + + - + - - - + elit, sed do eiusmod tempor + + + #general + + + incididunt ut labore et dolore magna aliqua. + + + + + + + + + + Emojis + + + + + + + + + - 1 - - + } + style={ + Object { + "bottom": 0, + "left": 0, + "position": "absolute", + "right": 0, + "top": 0, + } + } + /> + + + + - - + + + 10:00 AM + + + + + - - - + 👊🤙👏 + + + + + + + + + + Single Emoji + + + + + + + + + - 1 - - + } + style={ + Object { + "bottom": 0, + "left": 0, + "position": "absolute", + "right": 0, + "top": 0, + } + } + /> + + + + - - + + + 10:00 AM + + + + + - ❤️ - - + 👏 + + + + + + + + + + Custom Emojis + + + + + + + + + - 1 - - + } + style={ + Object { + "bottom": 0, + "left": 0, + "position": "absolute", + "right": 0, + "top": 0, + } + } + /> + + + + - - - 🐶 - - - 1 - - + diego.mello + - + 10:00 AM + + + + - - 😀 - - - 1 - + /> - - - - - 😬 - - - 1 - - - - + > + + - - 😁 - - + + - 1 - - - - + > + + - + -  - + style={ + Object { + "bottom": 0, + "left": 0, + "position": "absolute", + "right": 0, + "top": 0, + } + } + /> - + @@ -20220,7 +19991,7 @@ exports[`Storyshots Message list message 1`] = ` ] } > - Intercalated users + Single Custom Emojis - rocket.cat + diego.mello - - Fourth message - + + @@ -20452,6 +20231,27 @@ exports[`Storyshots Message list message 1`] = ` + + Normal Emoji + Custom Emojis + - Third message + 🤙 - - - - - - - - - - - - - - - - - - - - - - - rocket.cat - - - - 10:00 AM - - - - - - Second message - + + @@ -20912,6 +20522,27 @@ exports[`Storyshots Message list message 1`] = ` + + Four emoji + - First message + 🤙 + + + + + + 🤙🤙 @@ -21161,7 +20854,7 @@ exports[`Storyshots Message list message 1`] = ` ] } > - Date and Unread separators + Time format - rocket.cat + diego.mello - 10:00 AM + 10 November 2017 @@ -21360,7 +21053,7 @@ exports[`Storyshots Message list message 1`] = ` } > - Fourth message + Testing @@ -21393,68 +21086,27 @@ exports[`Storyshots Message list message 1`] = ` - - - unread - - - - Nov 10, 2017 - - + Reactions + - Third message + Reactions - - - - - - - - unread - - - - - - - - - - + - + + 😂 + + + 3 + + + + + - Second message - - + + + + + 13 + + + + + + + 🤔 + + + 1 + + + + + + +  + + + + + Multiple reactions + - rocket.cat + diego.mello - Second message + Multiple Reactions - - - - - - - - - Nov 10, 2017 - - - - - - - - - - - - - - - - diego.mello - - - - 10:00 AM - - - - - - First message - - - - - - - - - - With image - - - - - - - - - - - - - - - - - diego.mello - - - - 10:00 AM - - - - - - - - This is a description + 1 - - - - - - - - - - - - - - - - + - - - - - - diego.mello - - - - 10:00 AM - - - - - - - - This is a description + 1 + + + + @@ -22991,163 +22212,117 @@ exports[`Storyshots Message list message 1`] = ` } /> - + + 1 + + - - - - - - - - With video - - - - - - - - + > + + ❤️ + + + 1 + + - - - - - - diego.mello - + + 🐶 + + + 1 + + - - 10:00 AM - - - - - -  - - - - - This is a description - - - - - - - - - - - - - - - - - - + + 😀 + + + > + 1 + + - - - - - - diego.mello - - - + 😬 + + + 1 + + + + - 10:00 AM - - - - + + 😁 + + + 1 + + + + - -  - + + +  + + + @@ -23579,7 +22722,7 @@ exports[`Storyshots Message list message 1`] = ` ] } > - With audio + Intercalated users - diego.mello + rocket.cat - - - - - - - - 00:00 - - - - - This is a description - - - - - - - - - - - - - - - - First message + Fourth message @@ -24104,44 +22995,93 @@ exports[`Storyshots Message list message 1`] = ` style={ Array [ Object { - "flex": 1, - "marginLeft": 46, + "borderRadius": 4, + "height": 36, + "width": 36, + }, + Object { + "marginTop": 4, }, - false, ] } > - + + + + + + + - + > + diego.mello + - - 00:00 + 10:00 AM - + - This is a description + + Third message + - + @@ -24317,6 +23221,72 @@ exports[`Storyshots Message list message 1`] = ` } } > + + + + + + + - - + > + rocket.cat + - + > + 10:00 AM + + + - 00:00 + + Second message + @@ -24501,130 +23455,139 @@ exports[`Storyshots Message list message 1`] = ` style={ Array [ Object { - "flex": 1, - "marginLeft": 46, + "borderRadius": 4, + "height": 36, + "width": 36, + }, + Object { + "marginTop": 4, }, - false, ] } > - - - - + + + + + + + > + + diego.mello + + - 00:00 + 10:00 AM + + + + + + First message + @@ -24659,7 +23663,7 @@ exports[`Storyshots Message list message 1`] = ` ] } > - Message with reply + Date and Unread separators - diego.mello + rocket.cat - I'm fine! + Fourth message - - - - - I'm a very long long title and I'll break - - - 10:00 AM - - - - - How are you? - - - - + + + unread + + + + Nov 10, 2017 + + - I'm fine! + Third message - + + + + + + + unread + + + + + + + + - + + - - - rocket.cat - - - 10:00 AM - - - - - How are you? - - - - + Second message - + - - Message with read receipt - - diego.mello + rocket.cat - I'm fine! + Second message @@ -25648,98 +24557,49 @@ exports[`Storyshots Message list message 1`] = ` - - - - - - - - I'm fine! - - - - - - - + + + Nov 10, 2017 + - I'm fine! - - - - - -  - - - - - - - - - - - - - - I'm fine! + First message - -  - @@ -26128,7 +24850,7 @@ exports[`Storyshots Message list message 1`] = ` ] } > - Message with thread + With image - - - - How are you? - - - + - - + -  - - + + + + - 1 reply + + This is a description + - - Nov 10 - @@ -26639,147 +25343,185 @@ exports[`Storyshots Message list message 1`] = ` 10:00 AM - - - - How are you? - - - + - - + -  - + + + + - +999 replies + + This is a description + + + + - - Nov 10 - + + With video + - -  - - - How are you? - - - -  - - - - - + + + + diego.mello + + - I'm fine! + 10:00 AM + + + + + +  + + + This is a description + + + + + @@ -27045,110 +25861,20 @@ exports[`Storyshots Message list message 1`] = ` - -  - - - Thread with emoji🙂 😂 - - - -  - - - - - + + + + diego.mello + + - I'm fine! + 10:00 AM + + + + + +  @@ -27244,6 +26062,27 @@ exports[`Storyshots Message list message 1`] = ` + + With audio + - -  - - - Markdown: link block code - - - -  - - - - - + + + + diego.mello + + + 10:00 AM + + + + + + + + + - I'm fine! + 00:00 + + + This is a description + + + + + @@ -27509,166 +26504,10 @@ exports[`Storyshots Message list message 1`] = ` - -  - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. - - - -  - - - - - - - - - - - - I'm fine! + + First message + @@ -27741,200 +26598,185 @@ exports[`Storyshots Message list message 1`] = ` - -  - - - How are you? - - - + -  - - - - - - + + + - - - - - - + } + thumbTintColor={false} + value={0} + /> - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. + 00:00 + + + This is a description + + @@ -27973,198 +26815,146 @@ exports[`Storyshots Message list message 1`] = ` - -  - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. - - - + -  - - - - - - + + + - - - - - - + } + thumbTintColor={false} + value={0} + /> - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. + 00:00 @@ -28205,196 +26995,146 @@ exports[`Storyshots Message list message 1`] = ` - -  - - - Thread with attachment - - - + -  - - - - - - + + + - - - - - - + } + thumbTintColor={false} + value={0} + /> - Sent an attachment + 00:00 @@ -28421,7 +27161,7 @@ exports[`Storyshots Message list message 1`] = ` ] } > - Sequential thread messages following thread button + Message with reply - How are you? + I'm fine! - + -  - + ] + } + > + I'm a very long long title and I'll break + + + 10:00 AM + + - 1 reply + + How are you? + - - Nov 10 - @@ -28780,26 +27545,21 @@ exports[`Storyshots Message list message 1`] = ` > - + + + + diego.mello + + + 10:00 AM + + + + - I'm fine! + + I'm fine! + - - - - - - - - - - - + + rocket.cat + + + 10:00 AM + + + + > + + How are you? + + + + + - - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. - - - + + Message with read receipt + - + + + + diego.mello + + + 10:00 AM + + + + - Sent an attachment + + I'm fine! + @@ -29187,27 +28149,6 @@ exports[`Storyshots Message list message 1`] = ` - - Sequential thread messages following thread reply - - -  - - - How are you? - - - -  - + + + + I'm fine! + + + + + + + + + - - - I'm fine! - - - - - - - - - - - - - + > + diego.mello + - - - - - Cool! + 10:00 AM - - - - - - - - - - - - + - - + > + I'm fine! + + - - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. - - - +  + @@ -29766,115 +28527,86 @@ exports[`Storyshots Message list message 1`] = ` > - - + - - + > + I'm fine! + + - - - - Sent an attachment - - - +  + @@ -29898,7 +28630,7 @@ exports[`Storyshots Message list message 1`] = ` ] } > - Discussion + Message with thread - - Started a discussion: - - - This is a discussion - + + + + How are you? + + + -  +  - No messages yet + 1 reply + > + Nov 10 + @@ -30407,42 +29141,47 @@ exports[`Storyshots Message list message 1`] = ` 10:00 AM - - Started a discussion: - - - This is a discussion - + + + + How are you? + + + -  +  - 1 message + +999 replies + +  + + + How are you? + + + +  + + + + - - - - diego.mello - - + - 10:00 AM + I'm fine! + + + + + + + + + + +  + + + Thread with emoji🙂 😂 + + - Started a discussion: - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. +  - - - -  - - - 10 messages - - - - Nov 10 - - - - - - - - - - - - diego.mello - - - - 10:00 AM - - - - Started a discussion: - - - This is a discussion - - - - -  - - - +999 messages - - + - Nov 10 + I'm fine! @@ -31198,27 +29746,6 @@ exports[`Storyshots Message list message 1`] = ` - - URL - + +  + + + Markdown: link block code + + + +  + + + + - - - - diego.mello - - + - 10:00 AM + I'm fine! - + + + + + + + + + + +  + + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. + + + +  + + + + + - - - Rocket.Chat - Free, Open Source, Enterprise Team Chat - - - Rocket.Chat is the leading open source team chat software solution. Free, unlimited and completely customizable with on-premises and SaaS cloud hosting. - - - + - + + - - Google - - - Search the world's information, including webpages, images, videos and more. Google has many special features to help you find exactly what you're looking for. - - + I'm fine! + @@ -31619,20 +30243,110 @@ exports[`Storyshots Message list message 1`] = ` + +  + + + How are you? + + + +  + + + + - - + - - diego.mello - - - - 10:00 AM - - - - - - Message - - - - + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. - - - - Google - - - Search the world's information, including webpages, images, videos and more. Google has many special features to help you find exactly what you're looking for. - - - @@ -31956,22 +30475,114 @@ exports[`Storyshots Message list message 1`] = ` - +  + + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. + + + +  + + + + + - - - Google - - - Search the world's information, including webpages, images, videos and more. Google has many special features to help you find exactly what you're looking for. - + /> + + + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. + + + - - Custom fields - + +  + + + Thread with attachment + + + +  + + + + - - - - diego.mello - - + - 10:00 AM - - - - - - Message - + Sent an attachment - - - - - rocket.cat - - - 10:00 AM - - - - - Custom fields - - - - - - Field 1 - - - Value 1 - - - - - Field 2 - - - Value 2 - - - - - Field 3 - - - Value 3 - - - - - Field 4 - - - Value 4 - - - - - Field 5 - - - Value 5 - - - - - @@ -32689,7 +30923,7 @@ exports[`Storyshots Message list message 1`] = ` ] } > - Two short custom fields + Sequential thread messages following thread button - Message + How are you? - - - rocket.cat - - - 10:00 AM - - + "height": 44, + "justifyContent": "center", + "paddingHorizontal": 15, + }, + Object { + "height": 30, + }, + Object { + "backgroundColor": "#1d74f5", + }, + ] + } + testID="message-thread-button-How are you?" + > - - Custom fields - - - - - - Field 1 - - - Value 1 - - - - - Field 2 - - - Value 2 - - - - - - - - - - rocket.cat - - - 10:00 AM - - +  + - - Custom fields 2 - + 1 reply - - - - Field 1 - - - Value 1 - - - - - Field 2 - - - Value 2 - - - + + Nov 10 + - - Broadcast - - - - - diego.mello - - - + - 10:00 AM - - - - - - Broadcasted message - + I'm fine! - - - -  - - - Reply - - - - - Archived - - - - - diego.mello - - + - 10:00 AM - - - - - - This message is inside an archived room - + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. @@ -33957,134 +31544,60 @@ exports[`Storyshots Message list message 1`] = ` - - Error - - - + - - - - - - - + + + + + + + - diego.mello - - - - 10:00 AM - - - -  + Sent an attachment - - - - This message has error - - - - - + Sequential thread messages following thread reply + + + } + > + + +  + + + How are you? + - - - diego.mello - - - 10:00 AM +  + + + + - -  - + + - - + + - This message has error too + I'm fine! - + - - Temp - - - - - diego.mello - - + - 10:00 AM - - - - - - Temp message - + Cool! @@ -34687,27 +32089,6 @@ exports[`Storyshots Message list message 1`] = ` - - Editing - - - - - diego.mello - - + - 10:00 AM - - - - - - Message being edited - + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. @@ -34938,27 +32236,6 @@ exports[`Storyshots Message list message 1`] = ` - - Removed - - - Message removed - + + + Sent an attachment + + @@ -35123,7 +32400,7 @@ exports[`Storyshots Message list message 1`] = ` ] } > - Joined + Discussion + + + + diego.mello + + + + 10:00 AM + + - Has joined the channel + Started a discussion: + + This is a discussion + + + + +  + + + No messages yet + + + + - - Room name changed - + + + + diego.mello + + + + 10:00 AM + + - Room name changed to: New name by diego.mello + Started a discussion: + + + This is a discussion + + + +  + + + 1 message + + + + Nov 10 + + - - Message pinned - + + + + diego.mello + + + + 10:00 AM + + - Message pinned + Started a discussion: + + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. + + + +  + + + 10 messages + + + + Nov 10 + + - - Has left the channel - - - Has left the channel - - - - - - - - User removed - - - - - - - + + diego.mello + + + - - + 10:00 AM + - - - User rocket.cat removed by diego.mello + Started a discussion: + + + This is a discussion + + + +  + + + +999 messages + + + + Nov 10 + + @@ -35953,7 +33719,7 @@ exports[`Storyshots Message list message 1`] = ` ] } > - User added + URL - - User rocket.cat added by diego.mello - - - - - - - - User muted - - - - - - + + + diego.mello + + + + 10:00 AM + + + - - - - + + Rocket.Chat - Free, Open Source, Enterprise Team Chat + + + Rocket.Chat is the leading open source team chat software solution. Free, unlimited and completely customizable with on-premises and SaaS cloud hosting. + + + + - User rocket.cat muted by diego.mello - + + + Google + + + Search the world's information, including webpages, images, videos and more. Google has many special features to help you find exactly what you're looking for. + + + - - User unmuted - - + + + diego.mello + + + + 10:00 AM + + + + + + Message + + + + + + + - User rocket.cat unmuted by diego.mello - + + + Google + + + Search the world's information, including webpages, images, videos and more. Google has many special features to help you find exactly what you're looking for. + + + - - Role added - + - - - - - - - rocket.cat was set admin by diego.mello - + > + Google + + + Search the world's information, including webpages, images, videos and more. Google has many special features to help you find exactly what you're looking for. + + + @@ -36617,7 +34570,7 @@ exports[`Storyshots Message list message 1`] = ` ] } > - Role removed + Custom fields - - rocket.cat is no longer admin by diego.mello - - - - - - - - Changed description - - - - - - + + diego.mello + + + - + + + + - + > + Message + + - - - - Room description changed to: new description by diego.mello - - - - - - - - Changed announcement - - - - - - - + + rocket.cat + + + 10:00 AM + + + - - - - - - Room announcement changed to: new announcement by diego.mello - + > + + Custom fields + + + + + + Field 1 + + + Value 1 + + + + + Field 2 + + + Value 2 + + + + + Field 3 + + + Value 3 + + + + + Field 4 + + + Value 4 + + + + + Field 5 + + + Value 5 + + + + + @@ -37115,7 +35191,7 @@ exports[`Storyshots Message list message 1`] = ` ] } > - Changed topic + Two short custom fields - - Room topic changed to: new topic by diego.mello - - - - - - - - Changed type - - - - - - + + diego.mello + + + - - - - - - - Room type changed to: public by diego.mello - - - - - - - - Custom style - - - - - - - - - - - - - - - - - diego.mello - - - - 10:00 AM - - - - + + + - - - - - - - Markdown emphasis - - - - - - - - - - - - - + + + rocket.cat + + + 10:00 AM + + - diego.mello + + Custom fields + - - - 10:00 AM - - - - - - Italic with single - - - underscore - - - or double - - + + Field 1 + + + Value 1 + + + + + Field 2 + + + Value 2 + + + + + + + - underscores - - + - . Bold with single - - - asterisk - - - or double - - + rocket.cat + + - asterisks - + ] + } + > + 10:00 AM + + - . Strikethrough with single - - - Strikethrough + Array [ + Object {}, + Object { + "alignItems": "flex-start", + "flexDirection": "row", + "flexWrap": "wrap", + "justifyContent": "flex-start", + "marginBottom": 0, + "marginTop": 0, + }, + ], + ] + } + > + Custom fields 2 + - - or double - - + + Field 1 + + + Value 1 + + + - Strikethrough - - + ] + } + > + + Field 2 + + + Value 2 + + + + @@ -38272,7 +35894,7 @@ exports[`Storyshots Message list message 1`] = ` ] } > - Markdown headers + Broadcast - H1 + Broadcasted message - + - + - H2 - - - - H3 - - - - - H4 - - - - - H5 +  - - - H6 + Reply - + @@ -38706,7 +36227,7 @@ exports[`Storyshots Message list message 1`] = ` ] } > - Markdown links + Archived - Support - - - - Google - - - - - - - - I\`m an inline-style link - - - - - - - - https://google.com - + This message is inside an archived room @@ -39152,57 +36478,115 @@ exports[`Storyshots Message list message 1`] = ` ] } > - Markdown image + Error - + - + > + + + + + + + - - - + diego.mello + - - + + 10:00 AM + - - - diego.mello - - - 10:00 AM +  - + + + - + This message has error + + + + + + + + + + + + + + + "backgroundColor": "transparent", + "fontFamily": "System", + "fontSize": 16, + "fontWeight": "500", + "lineHeight": 22, + }, + Object { + "color": "#0d0e12", + }, + ] + } + > + diego.mello + + + + 10:00 AM + + + +  + + + + This message has error too + + + @@ -39390,7 +36951,7 @@ exports[`Storyshots Message list message 1`] = ` ] } > - Markdown code + Temp - + - Inline - - - code - - - has - - - back-ticks around - - - it. + Temp message - - Code block - - @@ -39748,7 +37208,7 @@ exports[`Storyshots Message list message 1`] = ` ] } > - Markdown quote + Editing - - - - - - Quote - - - - + ], + ] + } + > + Message being edited + + @@ -40031,7 +37459,7 @@ exports[`Storyshots Message list message 1`] = ` ] } > - Markdown table + Removed - - - - diego.mello - - - + + + + + + + Joined + + + + + + + + - 10:00 AM - + + - + + + + Has joined the channel + + + + + + + + Room name changed + + + + + + + + + + + + + + Room name changed to: New name by diego.mello + + + + + + + + Message pinned + + + + + + + + - - - - - - - - First Header - - - - - - - Second Header - - - - - - - - - Content from cell 1 - - - - - - - Content from cell 2 - - - - - - - - - Content in the first column - - - - - - - Content in the second column - - - - - - - - - Click to see full table - + /> + + + Message pinned + + - - + + Has left the channel + + + + + + + + + + + + + + + Has left the channel + + + + + + + + User removed + + + + + + + + + + + + + + + User rocket.cat removed by diego.mello + + + + + + + + User added + + + + + + + + + + + + + + + User rocket.cat added by diego.mello + + + + + + + + User muted + + + + + + + + + + + + + + + User rocket.cat muted by diego.mello + + + + + + + + User unmuted + + + + + + + + + + + + + + + User rocket.cat unmuted by diego.mello + + + + + + + + Role added + + + + + + + + + + + + + + + rocket.cat was set admin by diego.mello + + + + + + + + Role removed + + + + + + + + + + + + + + + rocket.cat is no longer admin by diego.mello + + + + + + + + Changed description + + + + + + + + + + + + + + + Room description changed to: new description by diego.mello + + + + + + + + Changed announcement + + + + + + + + + + + + + + + Room announcement changed to: new announcement by diego.mello + + + + + + + + Changed topic + + + + + + + + + + + + + + + Room topic changed to: new topic by diego.mello + + + + + + + + Changed type + + + + + + + + + + + + + + + Room type changed to: public by diego.mello + + + + + + + + Custom style + + + + + + + + + + + + + + + + + diego.mello + + + + 10:00 AM + + + + + + Message + + + + + + + + + + Markdown emphasis + + + + + + + + + + + + + + + + + diego.mello + + + + 10:00 AM + + + + + + Italic with single + + + underscore + + + or double + + + underscores + + + . Bold with single + + + asterisk + + + or double + + + asterisks + + + . Strikethrough with single + + + Strikethrough + + + or double + + + Strikethrough + + + + + + + + + + Markdown headers + + + + + + + + + + + + + + + + + diego.mello + + + + 10:00 AM + + + + + + H1 + + + + + H2 + + + + + H3 + + + + + H4 + + + + + H5 + + + + + H6 + + + + + + + + + + Markdown links + + + + + + + + + + + + + + + + + diego.mello + + + + 10:00 AM + + + + + + Support + + + + Google + + + + + + + + I\`m an inline-style link + + + + + + + + https://google.com + + + + + + + + + + + Markdown image + + + + + + + + + + + + + + + + + diego.mello + + + + 10:00 AM + + + + + + + + + + + + + + Markdown code + + + + + + + + + + + + + + + + + diego.mello + + + + 10:00 AM + + + + + + Inline + + + code + + + has + + + back-ticks around + + + it. + + + + Code block + + + + + + + + + + Markdown quote + + + + + + + + + + + + + + + + + diego.mello + + + + 10:00 AM + + + + + + + + + Quote + + + + + + + + + + + + Markdown table + + + + + + + + + + + + + + + + + diego.mello + + + + 10:00 AM + + + + + + + + + + + + First Header + + + + + + + Second Header + + + + + + + + + Content from cell 1 + + + + + + + Content from cell 2 + + + + + + + + + Content in the first column + + + + + + + Content in the second column + + + + + + + + + Click to see full table + + + + + + + + + + +`; + +exports[`Storyshots RoomItem list roomitem 1`] = ` + + + + Basic + + View + + User + + View + View + + Type + + View + View + View + View + View + View + View + + User status + + View + View + View + View + View + + Alerts + + View + View + View + View + View + View + View + + Last Message + + View + View + View + View + View + View + View + + +`; + +exports[`Storyshots UiKitMessage list uikitmessage 1`] = ` + + + + + Section + + + Section + Markdown List + + + Section + Overflow + + + Section + image + + + Section + button + + + Section + Select + + + Section + DatePicker + + + Section + Multi Select + + + Image + + + Context + + + Action - Buttons + + + Fields + + + Action - Select + + + + +`; + +exports[`Storyshots UiKitModal list UiKitModal 1`] = ` + + + + + Modal - Section and Selects + + + Modal - Section Accessories + + + Modal - Form Input + + + Modal - Form TextArea + + + Modal - Images + + + Modal - Actions + + + Modal - Contexts and Dividers + + + Modal - Input with error + + + Modal - Multilne with error + + + Modal - DatePicker with error + + + + `; -exports[`Storyshots RoomItem list roomitem 1`] = ` - - + + 9 + + + + + +99 + + + + - Basic + 9 - View + + + +999 + + + + - User + 9 - View - View + + + 9 + + + + - Type + 9 - View - View - View - View - View - View - View + + +`; + +exports[`Storyshots Unread Badge different mention types 1`] = ` + + + 1 + + + + - User status + 1 - View - View - View - View - View + + + 1 + + + + - Alerts + 1 - View - View - View - View - View - View - View - View + + + 1 + + + + - Last Message + 1 - View - View - View - View - View - View - View - + + + 1 + + + `; -exports[`Storyshots UiKitMessage list uikitmessage 1`] = ` - - + + 9 + + + + + +999 + + + +`; + +exports[`Storyshots Unread Badge small 1`] = ` + + + + 9 + + + - + + +99 + + + +`; + +exports[`Storyshots Unread Badge themes 1`] = ` +Array [ + + - Section - - - Section + Markdown List + 1 + + - Section + Overflow - - - Section + image + 1 + + - Section + button - - - Section + Select + 1 + + - Section + DatePicker - - - Section + Multi Select + 1 + + , + + - Image - - - Context + 1 + + - Action - Buttons + 1 + + - Fields + 1 + + - Action - Select + 1 - - -`; - -exports[`Storyshots UiKitModal list UiKitModal 1`] = ` - - , + - - - Modal - Section and Selects - - - Modal - Section Accessories - + - Modal - Form Input - - - Modal - Form TextArea + 1 + + - Modal - Images - - - Modal - Actions + 1 + + - Modal - Contexts and Dividers - - - Modal - Input with error + 1 + + - Modal - Multilne with error - - - Modal - DatePicker with error + 1 - - + , +] `; diff --git a/app/constants/colors.js b/app/constants/colors.js index a6b3314f89..0e6e784380 100644 --- a/app/constants/colors.js +++ b/app/constants/colors.js @@ -12,6 +12,7 @@ export const SWITCH_TRACK_COLOR = { const mentions = { unreadBackground: '#6C727A', + tunreadBackground: '#1d74f5', mentionMeColor: '#DB0C27', mentionMeBackground: '#F5455C', mentionGroupColor: '#E26D0E', diff --git a/app/containers/Header/index.js b/app/containers/Header/index.js index 2137a71ad5..95ba8c7a20 100644 --- a/app/containers/Header/index.js +++ b/app/containers/Header/index.js @@ -5,6 +5,7 @@ import { View, StyleSheet } from 'react-native'; import { themes } from '../../constants/colors'; import { themedHeader } from '../../utils/navigation'; import { isIOS, isTablet } from '../../utils/deviceInfo'; +import { withTheme } from '../../theme'; // Get from https://github.com/react-navigation/react-navigation/blob/master/packages/stack/src/views/Header/HeaderSegment.tsx#L69 export const headerHeight = isIOS ? 44 : 56; @@ -53,4 +54,4 @@ Header.propTypes = { headerRight: PropTypes.element }; -export default Header; +export default withTheme(Header); diff --git a/app/containers/HeaderButton.js b/app/containers/HeaderButton.js deleted file mode 100644 index 4dc72f8ccb..0000000000 --- a/app/containers/HeaderButton.js +++ /dev/null @@ -1,107 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; -import { HeaderButtons, HeaderButton, Item } from 'react-navigation-header-buttons'; - -import { CustomIcon } from '../lib/Icons'; -import { isIOS } from '../utils/deviceInfo'; -import { themes } from '../constants/colors'; -import I18n from '../i18n'; -import { withTheme } from '../theme'; - -export const headerIconSize = 23; - -const CustomHeaderButton = React.memo(withTheme(({ theme, ...props }) => ( - -))); - -export const CustomHeaderButtons = React.memo(props => ( - -)); - -export const DrawerButton = React.memo(({ navigation, testID, ...otherProps }) => ( - - - -)); - -export const CloseModalButton = React.memo(({ - navigation, testID, onPress = () => navigation.pop(), ...props -}) => ( - - - -)); - -export const CancelModalButton = React.memo(({ onPress, testID }) => ( - - {isIOS - ? - : - } - -)); - -export const MoreButton = React.memo(({ onPress, testID }) => ( - - - -)); - -export const SaveButton = React.memo(({ onPress, testID, ...props }) => ( - - - -)); - -export const PreferencesButton = React.memo(({ onPress, testID, ...props }) => ( - - - -)); - -export const LegalButton = React.memo(({ navigation, testID }) => ( - navigation.navigate('LegalView')} testID={testID} /> -)); - -CustomHeaderButton.propTypes = { - theme: PropTypes.string -}; -DrawerButton.propTypes = { - navigation: PropTypes.object.isRequired, - testID: PropTypes.string.isRequired -}; -CloseModalButton.propTypes = { - navigation: PropTypes.object.isRequired, - testID: PropTypes.string.isRequired, - onPress: PropTypes.func -}; -CancelModalButton.propTypes = { - onPress: PropTypes.func.isRequired, - testID: PropTypes.string.isRequired -}; -MoreButton.propTypes = { - onPress: PropTypes.func.isRequired, - testID: PropTypes.string.isRequired -}; -SaveButton.propTypes = { - onPress: PropTypes.func.isRequired, - testID: PropTypes.string.isRequired -}; -PreferencesButton.propTypes = { - onPress: PropTypes.func.isRequired, - testID: PropTypes.string.isRequired -}; -LegalButton.propTypes = { - navigation: PropTypes.object.isRequired, - testID: PropTypes.string.isRequired -}; - -export { Item }; diff --git a/app/containers/HeaderButton/Common.js b/app/containers/HeaderButton/Common.js new file mode 100644 index 0000000000..a1d55bd4e6 --- /dev/null +++ b/app/containers/HeaderButton/Common.js @@ -0,0 +1,84 @@ +import React from 'react'; +import PropTypes from 'prop-types'; + +import { isIOS } from '../../utils/deviceInfo'; +import I18n from '../../i18n'; +import Container from './HeaderButtonContainer'; +import Item from './HeaderButtonItem'; + +// Left +export const Drawer = React.memo(({ navigation, testID, ...props }) => ( + + navigation.toggleDrawer()} testID={testID} {...props} /> + +)); + +export const CloseModal = React.memo(({ + navigation, testID, onPress = () => navigation.pop(), ...props +}) => ( + + + +)); + +export const CancelModal = React.memo(({ onPress, testID }) => ( + + {isIOS + ? + : + } + +)); + +// Right +export const More = React.memo(({ onPress, testID }) => ( + + + +)); + +export const Download = React.memo(({ onPress, testID, ...props }) => ( + + + +)); + +export const Preferences = React.memo(({ onPress, testID, ...props }) => ( + + + +)); + +export const Legal = React.memo(({ navigation, testID }) => ( + navigation.navigate('LegalView')} testID={testID} /> +)); + +Drawer.propTypes = { + navigation: PropTypes.object.isRequired, + testID: PropTypes.string.isRequired +}; +CloseModal.propTypes = { + navigation: PropTypes.object.isRequired, + testID: PropTypes.string.isRequired, + onPress: PropTypes.func +}; +CancelModal.propTypes = { + onPress: PropTypes.func.isRequired, + testID: PropTypes.string.isRequired +}; +More.propTypes = { + onPress: PropTypes.func.isRequired, + testID: PropTypes.string.isRequired +}; +Download.propTypes = { + onPress: PropTypes.func.isRequired, + testID: PropTypes.string.isRequired +}; +Preferences.propTypes = { + onPress: PropTypes.func.isRequired, + testID: PropTypes.string.isRequired +}; +Legal.propTypes = { + navigation: PropTypes.object.isRequired, + testID: PropTypes.string.isRequired +}; diff --git a/app/containers/HeaderButton/HeaderButtonContainer.js b/app/containers/HeaderButton/HeaderButtonContainer.js new file mode 100644 index 0000000000..1521faa95d --- /dev/null +++ b/app/containers/HeaderButton/HeaderButtonContainer.js @@ -0,0 +1,36 @@ +import React from 'react'; +import { View, StyleSheet } from 'react-native'; +import PropTypes from 'prop-types'; + +const styles = StyleSheet.create({ + container: { + flexDirection: 'row', + alignItems: 'center', + justifyContent: 'center' + }, + left: { + marginLeft: 5 + }, + right: { + marginRight: 5 + } +}); + +const Container = ({ children, left }) => ( + + {children} + +); + +Container.propTypes = { + children: PropTypes.arrayOf(PropTypes.element), + left: PropTypes.bool +}; + +Container.defaultProps = { + left: false +}; + +Container.displayName = 'HeaderButton.Container'; + +export default Container; diff --git a/app/containers/HeaderButton/HeaderButtonItem.js b/app/containers/HeaderButton/HeaderButtonItem.js new file mode 100644 index 0000000000..5e9bb86318 --- /dev/null +++ b/app/containers/HeaderButton/HeaderButtonItem.js @@ -0,0 +1,58 @@ +import React from 'react'; +import { Text, StyleSheet, Platform } from 'react-native'; +import PropTypes from 'prop-types'; +import Touchable from 'react-native-platform-touchable'; + +import { CustomIcon } from '../../lib/Icons'; +import { withTheme } from '../../theme'; +import { themes } from '../../constants/colors'; +import sharedStyles from '../../views/Styles'; + +export const BUTTON_HIT_SLOP = { + top: 5, right: 5, bottom: 5, left: 5 +}; + +const styles = StyleSheet.create({ + container: { + marginHorizontal: 6 + }, + title: { + ...Platform.select({ + android: { + fontSize: 14 + }, + default: { + fontSize: 17 + } + }), + ...sharedStyles.textRegular + } +}); + +const Item = ({ + title, iconName, onPress, testID, theme, badge +}) => ( + + <> + { + iconName + ? + : {title} + } + {badge ? badge() : null} + + +); + +Item.propTypes = { + onPress: PropTypes.func.isRequired, + title: PropTypes.string, + iconName: PropTypes.string, + testID: PropTypes.string, + theme: PropTypes.string, + badge: PropTypes.func +}; + +Item.displayName = 'HeaderButton.Item'; + +export default withTheme(Item); diff --git a/app/containers/HeaderButton/HeaderButtonItemBadge.js b/app/containers/HeaderButton/HeaderButtonItemBadge.js new file mode 100644 index 0000000000..9a760b8284 --- /dev/null +++ b/app/containers/HeaderButton/HeaderButtonItemBadge.js @@ -0,0 +1,26 @@ +import React from 'react'; +import { StyleSheet } from 'react-native'; + +import UnreadBadge from '../../presentation/UnreadBadge'; + +const styles = StyleSheet.create({ + badgeContainer: { + padding: 2, + position: 'absolute', + right: -3, + top: -3, + borderRadius: 10, + alignItems: 'center', + justifyContent: 'center' + } +}); + +export const Badge = ({ ...props }) => ( + +); + +export default Badge; diff --git a/app/containers/HeaderButton/index.js b/app/containers/HeaderButton/index.js new file mode 100644 index 0000000000..d1d66baaf1 --- /dev/null +++ b/app/containers/HeaderButton/index.js @@ -0,0 +1,4 @@ +export { default as Container } from './HeaderButtonContainer'; +export { default as Item } from './HeaderButtonItem'; +export { default as Badge } from './HeaderButtonItemBadge'; +export * from './Common'; diff --git a/app/ee/omnichannel/views/QueueListView.js b/app/ee/omnichannel/views/QueueListView.js index d365db6cbf..34a3076994 100644 --- a/app/ee/omnichannel/views/QueueListView.js +++ b/app/ee/omnichannel/views/QueueListView.js @@ -15,7 +15,7 @@ import SafeAreaView from '../../../containers/SafeAreaView'; import { themes } from '../../../constants/colors'; import StatusBar from '../../../containers/StatusBar'; import { goRoom } from '../../../utils/goRoom'; -import { CloseModalButton } from '../../../containers/HeaderButton'; +import * as HeaderButton from '../../../containers/HeaderButton'; import RocketChat from '../../../lib/rocketchat'; import { logEvent, events } from '../../../utils/log'; import { getInquiryQueueSelector } from '../selectors/inquiry'; @@ -34,7 +34,7 @@ class QueueListView extends React.Component { title: I18n.t('Queued_chats') }; if (isMasterDetail) { - options.headerLeft = () => ; + options.headerLeft = () => ; } return options; } diff --git a/app/presentation/RoomItem/RoomItem.js b/app/presentation/RoomItem/RoomItem.js index da595d883b..a704e3f5b2 100644 --- a/app/presentation/RoomItem/RoomItem.js +++ b/app/presentation/RoomItem/RoomItem.js @@ -37,6 +37,7 @@ const RoomItem = ({ alert, hideUnreadStatus, unread, + tunread, userMentions, groupMentions, roomUpdatedAt, @@ -112,6 +113,7 @@ const RoomItem = ({ /> { - if (!unread || unread <= 0) { - return; - } - if (unread >= 1000) { - unread = '999+'; - } - - let backgroundColor = themes[theme].unreadBackground; - const color = themes[theme].buttonText; - if (userMentions > 0) { - backgroundColor = themes[theme].mentionMeBackground; - } else if (groupMentions > 0) { - backgroundColor = themes[theme].mentionGroupBackground; - } - - return ( - - {unread} - - - ); -}); - -UnreadBadge.propTypes = { - theme: PropTypes.string, - unread: PropTypes.number, - userMentions: PropTypes.number, - groupMentions: PropTypes.number, - style: PropTypes.object -}; - -export default UnreadBadge; diff --git a/app/presentation/UnreadBadge/getUnreadStyle.js b/app/presentation/UnreadBadge/getUnreadStyle.js new file mode 100644 index 0000000000..a8786fdcd3 --- /dev/null +++ b/app/presentation/UnreadBadge/getUnreadStyle.js @@ -0,0 +1,23 @@ +import { themes } from '../../constants/colors'; + +export const getUnreadStyle = ({ + unread, userMentions, groupMentions, theme, tunread, tunreadUser, tunreadGroup +}) => { + if ((!unread || unread <= 0) && (!tunread?.length)) { + return {}; + } + + let backgroundColor = themes[theme].unreadBackground; + const color = themes[theme].buttonText; + if (userMentions > 0 || tunreadUser?.length) { + backgroundColor = themes[theme].mentionMeColor; + } else if (groupMentions > 0 || tunreadGroup?.length) { + backgroundColor = themes[theme].mentionGroupColor; + } else if (tunread?.length > 0) { + backgroundColor = themes[theme].tunreadBackground; + } + + return { + backgroundColor, color + }; +}; diff --git a/app/presentation/UnreadBadge/getUnreadStyle.test.js b/app/presentation/UnreadBadge/getUnreadStyle.test.js new file mode 100644 index 0000000000..b639fb6ac4 --- /dev/null +++ b/app/presentation/UnreadBadge/getUnreadStyle.test.js @@ -0,0 +1,76 @@ +/* eslint-disable no-undef */ +import { themes } from '../../constants/colors'; +import { getUnreadStyle } from './getUnreadStyle'; + +const testsForTheme = (theme) => { + const getUnreadStyleUtil = ({ ...props }) => getUnreadStyle({ theme, ...props }); + + test('render unread', () => { + expect(getUnreadStyleUtil({ + unread: 1 + })).toEqual({ + backgroundColor: themes[theme].unreadBackground, + color: themes[theme].buttonText + }); + }); + + test('render thread unread', () => { + expect(getUnreadStyleUtil({ + tunread: [1] + })).toEqual({ + backgroundColor: themes[theme].tunreadBackground, + color: themes[theme].buttonText + }); + }); + + test('render user mention', () => { + expect(getUnreadStyleUtil({ + unread: 1, + userMentions: 1 + })).toEqual({ + backgroundColor: themes[theme].mentionMeColor, + color: themes[theme].buttonText + }); + }); + + test('render group mention', () => { + expect(getUnreadStyleUtil({ + unread: 1, + groupMentions: 1 + })).toEqual({ + backgroundColor: themes[theme].mentionGroupColor, + color: themes[theme].buttonText + }); + }); + + test('mentions priority', () => { + expect(getUnreadStyleUtil({ + unread: 1, + userMentions: 1, + groupMentions: 1, + tunread: [1] + })).toEqual({ + backgroundColor: themes[theme].mentionMeColor, + color: themes[theme].buttonText + }); + expect(getUnreadStyleUtil({ + unread: 1, + groupMentions: 1, + tunread: [1] + })).toEqual({ + backgroundColor: themes[theme].mentionGroupColor, + color: themes[theme].buttonText + }); + expect(getUnreadStyleUtil({ + unread: 1, + tunread: [1] + })).toEqual({ + backgroundColor: themes[theme].tunreadBackground, + color: themes[theme].buttonText + }); + }); +}; + +describe('getUnreadStyle light theme', () => testsForTheme('light')); +describe('getUnreadStyle dark theme', () => testsForTheme('dark')); +describe('getUnreadStyle black theme', () => testsForTheme('black')); diff --git a/app/presentation/UnreadBadge/index.js b/app/presentation/UnreadBadge/index.js new file mode 100644 index 0000000000..291fc45ff9 --- /dev/null +++ b/app/presentation/UnreadBadge/index.js @@ -0,0 +1,95 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import { View, Text, StyleSheet } from 'react-native'; + +import sharedStyles from '../../views/Styles'; +import { getUnreadStyle } from './getUnreadStyle'; +import { withTheme } from '../../theme'; + +const styles = StyleSheet.create({ + unreadNumberContainerNormal: { + height: 21, + paddingVertical: 3, + paddingHorizontal: 5, + borderRadius: 10.5, + alignItems: 'center', + justifyContent: 'center', + marginLeft: 10 + }, + unreadNumberContainerSmall: { + borderRadius: 10.5, + alignItems: 'center', + justifyContent: 'center' + }, + unreadText: { + // overflow: 'hidden', + fontSize: 13, + ...sharedStyles.textSemibold, + fontWeight: '600' + }, + textSmall: { + fontSize: 10 + } +}); + +const UnreadBadge = React.memo(({ + theme, unread, userMentions, groupMentions, style, tunread, tunreadUser, tunreadGroup, small +}) => { + if ((!unread || unread <= 0) && (!tunread?.length)) { + return; + } + const { backgroundColor, color } = getUnreadStyle({ + theme, unread, userMentions, groupMentions, tunread, tunreadUser, tunreadGroup + }); + + if (!backgroundColor) { + return null; + } + let text = unread || tunread?.length; + if (small && text >= 100) { + text = '+99'; + } + if (!small && text >= 1000) { + text = '+999'; + } + text = text.toString(); + + let minWidth = 21; + if (small) { + minWidth = 11 + text.length * 5; + } + + return ( + + {text} + + + ); +}); + +UnreadBadge.propTypes = { + theme: PropTypes.string, + unread: PropTypes.number, + userMentions: PropTypes.number, + groupMentions: PropTypes.number, + style: PropTypes.object, + tunread: PropTypes.array, + tunreadUser: PropTypes.array, + tunreadGroup: PropTypes.array, + small: PropTypes.bool +}; + +export default withTheme(UnreadBadge); diff --git a/app/views/AdminPanelView/index.js b/app/views/AdminPanelView/index.js index 814c8c76e4..bb790df432 100644 --- a/app/views/AdminPanelView/index.js +++ b/app/views/AdminPanelView/index.js @@ -5,14 +5,14 @@ import { connect } from 'react-redux'; import I18n from '../../i18n'; import StatusBar from '../../containers/StatusBar'; -import { DrawerButton } from '../../containers/HeaderButton'; +import * as HeaderButton from '../../containers/HeaderButton'; import { withTheme } from '../../theme'; import { getUserSelector } from '../../selectors/login'; import SafeAreaView from '../../containers/SafeAreaView'; class AdminPanelView extends React.Component { static navigationOptions = ({ navigation, isMasterDetail }) => ({ - headerLeft: isMasterDetail ? undefined : () => , + headerLeft: isMasterDetail ? undefined : () => , title: I18n.t('Admin_Panel') }) diff --git a/app/views/AttachmentView.js b/app/views/AttachmentView.js index 770c30c21e..701e49ed7d 100644 --- a/app/views/AttachmentView.js +++ b/app/views/AttachmentView.js @@ -17,7 +17,7 @@ import { ImageViewer } from '../presentation/ImageViewer'; import { themes } from '../constants/colors'; import { formatAttachmentUrl } from '../lib/utils'; import RCActivityIndicator from '../containers/ActivityIndicator'; -import { SaveButton, CloseModalButton } from '../containers/HeaderButton'; +import * as HeaderButton from '../containers/HeaderButton'; import { isAndroid } from '../utils/deviceInfo'; import { getUserSelector } from '../selectors/login'; import { withDimensions } from '../dimensions'; @@ -81,10 +81,10 @@ class AttachmentView extends React.Component { } const options = { title, - headerLeft: () => , + headerLeft: () => , headerRight: () => ( Allow_Save_Media_to_Gallery - ? + ? : null ), headerBackground: () => , diff --git a/app/views/AuthenticationWebView.js b/app/views/AuthenticationWebView.js index 1b51b64ba9..e3f22ac75b 100644 --- a/app/views/AuthenticationWebView.js +++ b/app/views/AuthenticationWebView.js @@ -10,7 +10,7 @@ import StatusBar from '../containers/StatusBar'; import ActivityIndicator from '../containers/ActivityIndicator'; import { withTheme } from '../theme'; import debounce from '../utils/debounce'; -import { CloseModalButton } from '../containers/HeaderButton'; +import * as HeaderButton from '../containers/HeaderButton'; const userAgent = isIOS ? 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1' @@ -185,7 +185,7 @@ const mapStateToProps = state => ({ AuthenticationWebView.navigationOptions = ({ route, navigation }) => { const { authType } = route.params; return { - headerLeft: () => , + headerLeft: () => , title: ['saml', 'cas', 'iframe'].includes(authType) ? 'SSO' : 'OAuth' }; }; diff --git a/app/views/CreateChannelView.js b/app/views/CreateChannelView.js index 8d03d21e5a..9afbc4e59b 100644 --- a/app/views/CreateChannelView.js +++ b/app/views/CreateChannelView.js @@ -15,7 +15,7 @@ import KeyboardView from '../presentation/KeyboardView'; import scrollPersistTaps from '../utils/scrollPersistTaps'; import I18n from '../i18n'; import UserItem from '../presentation/UserItem'; -import { CustomHeaderButtons, Item } from '../containers/HeaderButton'; +import * as HeaderButton from '../containers/HeaderButton'; import StatusBar from '../containers/StatusBar'; import { SWITCH_TRACK_COLOR, themes } from '../constants/colors'; import { withTheme } from '../theme'; @@ -143,9 +143,9 @@ class CreateChannelView extends React.Component { const { navigation } = this.props; navigation.setOptions({ headerRight: () => channelName.trim().length > 0 && ( - - - + + + ) }); } diff --git a/app/views/CreateDiscussionView/index.js b/app/views/CreateDiscussionView/index.js index c489b7481a..ebad1fa67f 100644 --- a/app/views/CreateDiscussionView/index.js +++ b/app/views/CreateDiscussionView/index.js @@ -8,7 +8,7 @@ import Loading from '../../containers/Loading'; import KeyboardView from '../../presentation/KeyboardView'; import scrollPersistTaps from '../../utils/scrollPersistTaps'; import I18n from '../../i18n'; -import { CustomHeaderButtons, Item, CloseModalButton } from '../../containers/HeaderButton'; +import * as HeaderButton from '../../containers/HeaderButton'; import StatusBar from '../../containers/StatusBar'; import { themes } from '../../constants/colors'; import { withTheme } from '../../theme'; @@ -96,13 +96,13 @@ class CreateChannelView extends React.Component { headerRight: ( this.valid() ? () => ( - - - + + + ) : null ), - headerLeft: showCloseModal ? () => : undefined + headerLeft: showCloseModal ? () => : undefined }); } diff --git a/app/views/DirectoryView/index.js b/app/views/DirectoryView/index.js index 9b89c8225a..18d9c6cd9a 100644 --- a/app/views/DirectoryView/index.js +++ b/app/views/DirectoryView/index.js @@ -14,7 +14,7 @@ import SearchBox from '../../containers/SearchBox'; import { CustomIcon } from '../../lib/Icons'; import StatusBar from '../../containers/StatusBar'; import ActivityIndicator from '../../containers/ActivityIndicator'; -import { CloseModalButton } from '../../containers/HeaderButton'; +import * as HeaderButton from '../../containers/HeaderButton'; import debounce from '../../utils/debounce'; import log, { logEvent, events } from '../../utils/log'; import Options from './Options'; @@ -31,7 +31,7 @@ class DirectoryView extends React.Component { title: I18n.t('Directory') }; if (isMasterDetail) { - options.headerLeft = () => ; + options.headerLeft = () => ; } return options; } diff --git a/app/views/E2EEnterYourPasswordView.js b/app/views/E2EEnterYourPasswordView.js index 538289ba1e..c753a62083 100644 --- a/app/views/E2EEnterYourPasswordView.js +++ b/app/views/E2EEnterYourPasswordView.js @@ -10,7 +10,7 @@ import Button from '../containers/Button'; import { themes } from '../constants/colors'; import TextInput from '../containers/TextInput'; import SafeAreaView from '../containers/SafeAreaView'; -import { CloseModalButton } from '../containers/HeaderButton'; +import * as HeaderButton from '../containers/HeaderButton'; import { encryptionDecodeKey as encryptionDecodeKeyAction } from '../actions/encryption'; import scrollPersistTaps from '../utils/scrollPersistTaps'; import KeyboardView from '../presentation/KeyboardView'; @@ -29,7 +29,7 @@ const styles = StyleSheet.create({ }); class E2EEnterYourPasswordView extends React.Component { static navigationOptions = ({ navigation }) => ({ - headerLeft: () => , + headerLeft: () => , title: I18n.t('Enter_Your_E2E_Password') }) diff --git a/app/views/E2EHowItWorksView.js b/app/views/E2EHowItWorksView.js index dcaf5f7369..f72b9c6dd1 100644 --- a/app/views/E2EHowItWorksView.js +++ b/app/views/E2EHowItWorksView.js @@ -4,7 +4,7 @@ import { StyleSheet } from 'react-native'; import SafeAreaView from '../containers/SafeAreaView'; import { themes } from '../constants/colors'; -import { CloseModalButton } from '../containers/HeaderButton'; +import * as HeaderButton from '../containers/HeaderButton'; import Markdown from '../containers/markdown'; import { withTheme } from '../theme'; import I18n from '../i18n'; @@ -26,7 +26,7 @@ class E2EHowItWorksView extends React.Component { const showCloseModal = route.params?.showCloseModal; return { title: I18n.t('How_It_Works'), - headerLeft: showCloseModal ? () => : undefined + headerLeft: showCloseModal ? () => : undefined }; } diff --git a/app/views/E2ESaveYourPasswordView.js b/app/views/E2ESaveYourPasswordView.js index 9c6b2dca39..5a645baa35 100644 --- a/app/views/E2ESaveYourPasswordView.js +++ b/app/views/E2ESaveYourPasswordView.js @@ -11,7 +11,7 @@ import { import { encryptionSetBanner as encryptionSetBannerAction } from '../actions/encryption'; import { E2E_RANDOM_PASSWORD_KEY } from '../lib/encryption/constants'; -import { CloseModalButton } from '../containers/HeaderButton'; +import * as HeaderButton from '../containers/HeaderButton'; import scrollPersistTaps from '../utils/scrollPersistTaps'; import SafeAreaView from '../containers/SafeAreaView'; import UserPreferences from '../lib/userPreferences'; @@ -61,7 +61,7 @@ const styles = StyleSheet.create({ class E2ESaveYourPasswordView extends React.Component { static navigationOptions = ({ navigation }) => ({ - headerLeft: () => , + headerLeft: () => , title: I18n.t('Save_Your_E2E_Password') }) diff --git a/app/views/LoginView.js b/app/views/LoginView.js index f96adbeefe..bdffd103b5 100644 --- a/app/views/LoginView.js +++ b/app/views/LoginView.js @@ -9,7 +9,7 @@ import equal from 'deep-equal'; import sharedStyles from './Styles'; import Button from '../containers/Button'; import I18n from '../i18n'; -import { LegalButton } from '../containers/HeaderButton'; +import * as HeaderButton from '../containers/HeaderButton'; import { themes } from '../constants/colors'; import { withTheme } from '../theme'; import FormContainer, { FormContainerInner } from '../containers/FormContainer'; @@ -51,7 +51,7 @@ const styles = StyleSheet.create({ class LoginView extends React.Component { static navigationOptions = ({ route, navigation }) => ({ title: route.params?.title ?? 'Rocket.Chat', - headerRight: () => + headerRight: () => }) static propTypes = { diff --git a/app/views/ModalBlockView.js b/app/views/ModalBlockView.js index e88d308853..2d72fa3398 100644 --- a/app/views/ModalBlockView.js +++ b/app/views/ModalBlockView.js @@ -8,7 +8,7 @@ import { KeyboardAwareScrollView } from '@codler/react-native-keyboard-aware-scr import { withTheme } from '../theme'; import EventEmitter from '../utils/events'; import { themes } from '../constants/colors'; -import { CustomHeaderButtons, Item } from '../containers/HeaderButton'; +import * as HeaderButton from '../containers/HeaderButton'; import { modalBlockWithContext } from '../containers/UIKit/MessageBlock'; import RocketChat from '../lib/rocketchat'; import ActivityIndicator from '../containers/ActivityIndicator'; @@ -128,24 +128,24 @@ class ModalBlockView extends React.Component { navigation.setOptions({ title: textParser([title]), headerLeft: close ? () => ( - - + - + ) : null, headerRight: submit ? () => ( - - + - + ) : null }); } diff --git a/app/views/NewMessageView.js b/app/views/NewMessageView.js index c012cd406f..a471500693 100644 --- a/app/views/NewMessageView.js +++ b/app/views/NewMessageView.js @@ -17,7 +17,7 @@ import I18n from '../i18n'; import log, { logEvent, events } from '../utils/log'; import SearchBox from '../containers/SearchBox'; import { CustomIcon } from '../lib/Icons'; -import { CloseModalButton } from '../containers/HeaderButton'; +import * as HeaderButton from '../containers/HeaderButton'; import StatusBar from '../containers/StatusBar'; import { themes } from '../constants/colors'; import { withTheme } from '../theme'; @@ -51,7 +51,7 @@ const styles = StyleSheet.create({ class NewMessageView extends React.Component { static navigationOptions = ({ navigation }) => ({ - headerLeft: () => , + headerLeft: () => , title: I18n.t('New_Message') }) diff --git a/app/views/NewServerView/index.js b/app/views/NewServerView/index.js index 5d5e470440..9548e0082a 100644 --- a/app/views/NewServerView/index.js +++ b/app/views/NewServerView/index.js @@ -26,7 +26,7 @@ import log, { logEvent, events } from '../../utils/log'; import { animateNextTransition } from '../../utils/layoutAnimation'; import { withTheme } from '../../theme'; import { setBasicAuth, BASIC_AUTH_KEY } from '../../utils/fetch'; -import { CloseModalButton } from '../../containers/HeaderButton'; +import * as HeaderButton from '../../containers/HeaderButton'; import { showConfirmationAlert } from '../../utils/info'; import database from '../../lib/database'; import ServerInput from './ServerInput'; @@ -111,7 +111,7 @@ class NewServerView extends React.Component { const { adding, navigation } = this.props; if (adding) { navigation.setOptions({ - headerLeft: () => + headerLeft: () => }); } } diff --git a/app/views/ProfileView/index.js b/app/views/ProfileView/index.js index 95555c4ee5..62280bb126 100644 --- a/app/views/ProfileView/index.js +++ b/app/views/ProfileView/index.js @@ -24,7 +24,7 @@ import Button from '../../containers/Button'; import Avatar from '../../containers/Avatar'; import { setUser as setUserAction } from '../../actions/login'; import { CustomIcon } from '../../lib/Icons'; -import { DrawerButton, PreferencesButton } from '../../containers/HeaderButton'; +import * as HeaderButton from '../../containers/HeaderButton'; import StatusBar from '../../containers/StatusBar'; import { themes } from '../../constants/colors'; import { withTheme } from '../../theme'; @@ -37,10 +37,10 @@ class ProfileView extends React.Component { title: I18n.t('Profile') }; if (!isMasterDetail) { - options.headerLeft = () => ; + options.headerLeft = () => ; } options.headerRight = () => ( - navigation.navigate('UserPreferencesView')} testID='preferences-view-open' /> + navigation.navigate('UserPreferencesView')} testID='preferences-view-open' /> ); return options; } diff --git a/app/views/ReadReceiptView/index.js b/app/views/ReadReceiptView/index.js index ba704dea36..b7456c77a9 100644 --- a/app/views/ReadReceiptView/index.js +++ b/app/views/ReadReceiptView/index.js @@ -8,7 +8,7 @@ import { connect } from 'react-redux'; import Avatar from '../../containers/Avatar'; import styles from './styles'; import ActivityIndicator from '../../containers/ActivityIndicator'; -import { CloseModalButton } from '../../containers/HeaderButton'; +import * as HeaderButton from '../../containers/HeaderButton'; import I18n from '../../i18n'; import RocketChat from '../../lib/rocketchat'; import StatusBar from '../../containers/StatusBar'; @@ -22,7 +22,7 @@ class ReadReceiptView extends React.Component { title: I18n.t('Read_Receipt') }; if (isMasterDetail) { - options.headerLeft = () => ; + options.headerLeft = () => ; } return options; } diff --git a/app/views/RegisterView.js b/app/views/RegisterView.js index 23711a7cd0..750944fed8 100644 --- a/app/views/RegisterView.js +++ b/app/views/RegisterView.js @@ -10,7 +10,7 @@ import log, { logEvent, events } from '../utils/log'; import sharedStyles from './Styles'; import Button from '../containers/Button'; import I18n from '../i18n'; -import { LegalButton } from '../containers/HeaderButton'; +import * as HeaderButton from '../containers/HeaderButton'; import { themes } from '../constants/colors'; import { withTheme } from '../theme'; import FormContainer, { FormContainerInner } from '../containers/FormContainer'; @@ -54,7 +54,7 @@ const styles = StyleSheet.create({ class RegisterView extends React.Component { static navigationOptions = ({ route, navigation }) => ({ title: route.params?.title ?? 'Rocket.Chat', - headerRight: () => + headerRight: () => }); static propTypes = { diff --git a/app/views/RoomActionsView/index.js b/app/views/RoomActionsView/index.js index ba007818d7..ec23485dca 100644 --- a/app/views/RoomActionsView/index.js +++ b/app/views/RoomActionsView/index.js @@ -21,7 +21,7 @@ import I18n from '../../i18n'; import StatusBar from '../../containers/StatusBar'; import { themes, SWITCH_TRACK_COLOR } from '../../constants/colors'; import { withTheme } from '../../theme'; -import { CloseModalButton } from '../../containers/HeaderButton'; +import * as HeaderButton from '../../containers/HeaderButton'; import Markdown from '../../containers/markdown'; import { showConfirmationAlert, showErrorAlert } from '../../utils/info'; import SafeAreaView from '../../containers/SafeAreaView'; @@ -36,7 +36,7 @@ class RoomActionsView extends React.Component { title: I18n.t('Actions') }; if (isMasterDetail) { - options.headerLeft = () => ; + options.headerLeft = () => ; } return options; } diff --git a/app/views/RoomInfoView/index.js b/app/views/RoomInfoView/index.js index 8b257ce7b1..35e5be5e5d 100644 --- a/app/views/RoomInfoView/index.js +++ b/app/views/RoomInfoView/index.js @@ -15,7 +15,7 @@ import sharedStyles from '../Styles'; import RocketChat from '../../lib/rocketchat'; import RoomTypeIcon from '../../containers/RoomTypeIcon'; import I18n from '../../i18n'; -import { CustomHeaderButtons, CloseModalButton } from '../../containers/HeaderButton'; +import * as HeaderButton from '../../containers/HeaderButton'; import StatusBar from '../../containers/StatusBar'; import log, { logEvent, events } from '../../utils/log'; import { themes } from '../../constants/colors'; @@ -26,7 +26,6 @@ import EventEmitter from '../../utils/events'; import Livechat from './Livechat'; import Channel from './Channel'; -import Item from './Item'; import Direct from './Direct'; import SafeAreaView from '../../containers/SafeAreaView'; import { goRoom } from '../../utils/goRoom'; @@ -104,12 +103,12 @@ class RoomInfoView extends React.Component { const rid = route.params?.rid; const showCloseModal = route.params?.showCloseModal; navigation.setOptions({ - headerLeft: showCloseModal ? () => : undefined, + headerLeft: showCloseModal ? () => : undefined, title: t === 'd' ? I18n.t('User_Info') : I18n.t('Room_Info'), headerRight: showEdit ? () => ( - - + { const isLivechat = t === 'l'; @@ -118,7 +117,7 @@ class RoomInfoView extends React.Component { }} testID='room-info-view-edit-button' /> - + ) : null }); diff --git a/app/views/RoomMembersView/index.js b/app/views/RoomMembersView/index.js index 340a4e7957..a4110a9456 100644 --- a/app/views/RoomMembersView/index.js +++ b/app/views/RoomMembersView/index.js @@ -15,7 +15,7 @@ import log from '../../utils/log'; import I18n from '../../i18n'; import SearchBox from '../../containers/SearchBox'; import protectedFunction from '../../lib/methods/helpers/protectedFunction'; -import { CustomHeaderButtons, Item } from '../../containers/HeaderButton'; +import * as HeaderButton from '../../containers/HeaderButton'; import StatusBar from '../../containers/StatusBar'; import ActivityIndicator from '../../containers/ActivityIndicator'; import { withTheme } from '../../theme'; @@ -97,9 +97,9 @@ class RoomMembersView extends React.Component { navigation.setOptions({ title: I18n.t('Members'), headerRight: () => ( - - - + + + ) }); } diff --git a/app/views/RoomView/Header/RightButtons.js b/app/views/RoomView/Header/RightButtons.js index b554b41ccd..ba28a57297 100644 --- a/app/views/RoomView/Header/RightButtons.js +++ b/app/views/RoomView/Header/RightButtons.js @@ -2,11 +2,12 @@ import React from 'react'; import PropTypes from 'prop-types'; import { connect } from 'react-redux'; -import { CustomHeaderButtons, Item } from '../../../containers/HeaderButton'; +import * as HeaderButton from '../../../containers/HeaderButton'; import database from '../../../lib/database'; import { getUserSelector } from '../../../selectors/login'; import { logEvent, events } from '../../../utils/log'; + class RightButtonsContainer extends React.PureComponent { static propTypes = { userId: PropTypes.string, @@ -99,33 +100,30 @@ class RightButtonsContainer extends React.PureComponent { } if (tmid) { return ( - - + - + ); } return ( - + {threadsEnabled ? ( - ) : null} - - + ); } } diff --git a/app/views/RoomsListView/index.js b/app/views/RoomsListView/index.js index 6a1e5b07f9..8404ce67dd 100644 --- a/app/views/RoomsListView/index.js +++ b/app/views/RoomsListView/index.js @@ -33,11 +33,7 @@ import { appStart as appStartAction, ROOT_BACKGROUND } from '../../actions/app'; import debounce from '../../utils/debounce'; import { isIOS, isTablet } from '../../utils/deviceInfo'; import RoomsListHeaderView from './Header'; -import { - DrawerButton, - CustomHeaderButtons, - Item -} from '../../containers/HeaderButton'; +import * as HeaderButton from '../../containers/HeaderButton'; import StatusBar from '../../containers/StatusBar'; import ActivityIndicator from '../../containers/ActivityIndicator'; import ListHeader from './ListHeader'; @@ -346,15 +342,14 @@ class RoomsListView extends React.Component { return { headerTitleAlign: 'left', headerLeft: () => (searching ? ( - - + - + ) : ( - (searching ? null : ( - - + - - - + )) }; } @@ -883,7 +875,7 @@ class RoomsListView extends React.Component { }; renderHeader = () => { - const { isMasterDetail, theme } = this.props; + const { isMasterDetail } = this.props; if (!isMasterDetail) { return null; @@ -892,7 +884,6 @@ class RoomsListView extends React.Component { const options = this.getHeader(); return (
); diff --git a/app/views/SearchMessagesView/index.js b/app/views/SearchMessagesView/index.js index 37dfc8b119..4f6d896e0e 100644 --- a/app/views/SearchMessagesView/index.js +++ b/app/views/SearchMessagesView/index.js @@ -20,7 +20,7 @@ import { themes } from '../../constants/colors'; import { withTheme } from '../../theme'; import { getUserSelector } from '../../selectors/login'; import SafeAreaView from '../../containers/SafeAreaView'; -import { CloseModalButton } from '../../containers/HeaderButton'; +import * as HeaderButton from '../../containers/HeaderButton'; import database from '../../lib/database'; import { sanitizeLikeString } from '../../lib/database/utils'; @@ -31,7 +31,7 @@ class SearchMessagesView extends React.Component { }; const showCloseModal = route.params?.showCloseModal; if (showCloseModal) { - options.headerLeft = () => ; + options.headerLeft = () => ; } return options; } diff --git a/app/views/SelectedUsersView.js b/app/views/SelectedUsersView.js index a6624f2687..d9c84c18cd 100644 --- a/app/views/SelectedUsersView.js +++ b/app/views/SelectedUsersView.js @@ -14,7 +14,7 @@ import I18n from '../i18n'; import log, { logEvent, events } from '../utils/log'; import SearchBox from '../containers/SearchBox'; import sharedStyles from './Styles'; -import { Item, CustomHeaderButtons } from '../containers/HeaderButton'; +import * as HeaderButton from '../containers/HeaderButton'; import StatusBar from '../containers/StatusBar'; import { themes } from '../constants/colors'; import { animateNextTransition } from '../utils/layoutAnimation'; @@ -119,9 +119,9 @@ class SelectedUsersView extends React.Component { title, headerRight: () => ( (!maxUsers || showButton) && ( - - - + + + ) ) }; diff --git a/app/views/SettingsView/index.js b/app/views/SettingsView/index.js index c8adee4e50..32b11c4858 100644 --- a/app/views/SettingsView/index.js +++ b/app/views/SettingsView/index.js @@ -12,7 +12,7 @@ import { logout as logoutAction } from '../../actions/login'; import { selectServerRequest as selectServerRequestAction } from '../../actions/server'; import { toggleCrashReport as toggleCrashReportAction, toggleAnalyticsEvents as toggleAnalyticsEventsAction } from '../../actions/crashReport'; import { SWITCH_TRACK_COLOR, themes } from '../../constants/colors'; -import { DrawerButton, CloseModalButton } from '../../containers/HeaderButton'; +import * as HeaderButton from '../../containers/HeaderButton'; import StatusBar from '../../containers/StatusBar'; import * as List from '../../containers/List'; import I18n from '../../i18n'; @@ -42,9 +42,9 @@ import { getUserSelector } from '../../selectors/login'; class SettingsView extends React.Component { static navigationOptions = ({ navigation, isMasterDetail }) => ({ headerLeft: () => (isMasterDetail ? ( - + ) : ( - + )), title: I18n.t('Settings') }); diff --git a/app/views/ShareListView/Header/Header.ios.js b/app/views/ShareListView/Header/Header.ios.js index e32617a10b..afbe156632 100644 --- a/app/views/ShareListView/Header/Header.ios.js +++ b/app/views/ShareListView/Header/Header.ios.js @@ -4,7 +4,7 @@ import { Keyboard, View, StyleSheet } from 'react-native'; import ShareExtension from 'rn-extensions-share'; import SearchBox from '../../../containers/SearchBox'; -import { CancelModalButton } from '../../../containers/HeaderButton'; +import * as HeaderButton from '../../../containers/HeaderButton'; import { themes } from '../../../constants/colors'; import sharedStyles from '../../Styles'; @@ -52,7 +52,7 @@ const Header = React.memo(({ { !searching ? ( - diff --git a/app/views/ShareListView/index.js b/app/views/ShareListView/index.js index 0e43042f89..2544d43b87 100644 --- a/app/views/ShareListView/index.js +++ b/app/views/ShareListView/index.js @@ -15,7 +15,7 @@ import { isIOS, isAndroid } from '../../utils/deviceInfo'; import I18n from '../../i18n'; import DirectoryItem, { ROW_HEIGHT } from '../../presentation/DirectoryItem'; import ServerItem from '../../presentation/ServerItem'; -import { CancelModalButton, CustomHeaderButtons, Item } from '../../containers/HeaderButton'; +import * as HeaderButton from '../../containers/HeaderButton'; import ShareListHeader from './Header'; import ActivityIndicator from '../../containers/ActivityIndicator'; @@ -157,12 +157,12 @@ class ShareListView extends React.Component { navigation.setOptions({ headerLeft: () => (searching ? ( - - - + + + ) : ( - @@ -172,9 +172,9 @@ class ShareListView extends React.Component { searching ? null : ( - - - + + + ) ) }); diff --git a/app/views/ShareView/index.js b/app/views/ShareView/index.js index 6b41ef24f8..9e8c710ebf 100644 --- a/app/views/ShareView/index.js +++ b/app/views/ShareView/index.js @@ -9,11 +9,7 @@ import { themes } from '../../constants/colors'; import I18n from '../../i18n'; import styles from './styles'; import Loading from '../../containers/Loading'; -import { - Item, - CloseModalButton, - CustomHeaderButtons -} from '../../containers/HeaderButton'; +import * as HeaderButton from '../../containers/HeaderButton'; import { isBlocked } from '../../utils/room'; import { isReadOnly } from '../../utils/isReadOnly'; import { withTheme } from '../../theme'; @@ -75,18 +71,18 @@ class ShareView extends Component { // if is share extension show default back button if (!this.isShareExtension) { - options.headerLeft = () => ; + options.headerLeft = () => ; } if (!attachments.length && !readOnly) { options.headerRight = () => ( - - + - + ); } diff --git a/app/views/StatusView.js b/app/views/StatusView.js index e5191df0f7..8783da13e4 100644 --- a/app/views/StatusView.js +++ b/app/views/StatusView.js @@ -15,7 +15,7 @@ import log, { logEvent, events } from '../utils/log'; import { LISTENER } from '../containers/Toast'; import { withTheme } from '../theme'; import { getUserSelector } from '../selectors/login'; -import { CustomHeaderButtons, Item, CancelModalButton } from '../containers/HeaderButton'; +import * as HeaderButton from '../containers/HeaderButton'; import store from '../lib/createStore'; import { setUser } from '../actions/login'; import SafeAreaView from '../containers/SafeAreaView'; @@ -73,15 +73,15 @@ class StatusView extends React.Component { const { navigation, isMasterDetail } = this.props; navigation.setOptions({ title: I18n.t('Edit_Status'), - headerLeft: isMasterDetail ? undefined : () => , + headerLeft: isMasterDetail ? undefined : () => , headerRight: () => ( - - + - + ) }); } diff --git a/app/views/ThreadMessagesView/index.js b/app/views/ThreadMessagesView/index.js index 1124615867..71c2aeee37 100644 --- a/app/views/ThreadMessagesView/index.js +++ b/app/views/ThreadMessagesView/index.js @@ -24,7 +24,7 @@ import { themes } from '../../constants/colors'; import { withTheme } from '../../theme'; import { getUserSelector } from '../../selectors/login'; import SafeAreaView from '../../containers/SafeAreaView'; -import { CloseModalButton } from '../../containers/HeaderButton'; +import * as HeaderButton from '../../containers/HeaderButton'; const Separator = React.memo(({ theme }) => ); Separator.propTypes = { @@ -39,7 +39,7 @@ class ThreadMessagesView extends React.Component { title: I18n.t('Threads') }; if (isMasterDetail) { - options.headerLeft = () => ; + options.headerLeft = () => ; } return options; } diff --git a/app/views/WithoutServersView.js b/app/views/WithoutServersView.js index 136359df18..7cda426021 100644 --- a/app/views/WithoutServersView.js +++ b/app/views/WithoutServersView.js @@ -5,7 +5,7 @@ import { import PropTypes from 'prop-types'; import ShareExtension from 'rn-extensions-share'; -import { CancelModalButton } from '../containers/HeaderButton'; +import * as HeaderButton from '../containers/HeaderButton'; import sharedStyles from './Styles'; import I18n from '../i18n'; import { themes } from '../constants/colors'; @@ -33,7 +33,7 @@ class WithoutServerView extends React.Component { static navigationOptions = () => ({ title: 'Rocket.Chat', headerLeft: () => ( - diff --git a/package.json b/package.json index fc64259184..179259e8fa 100644 --- a/package.json +++ b/package.json @@ -109,7 +109,6 @@ "react-native-unimodules": "0.10.1", "react-native-vector-icons": "7.0.0", "react-native-webview": "10.3.2", - "react-navigation-header-buttons": "3.0.5", "react-redux": "7.2.0", "reactotron-react-native": "5.0.0", "redux": "4.0.5", diff --git a/patches/react-navigation-header-buttons+3.0.5.patch b/patches/react-navigation-header-buttons+3.0.5.patch deleted file mode 100644 index 3b47953e81..0000000000 --- a/patches/react-navigation-header-buttons+3.0.5.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/node_modules/react-navigation-header-buttons/src/HeaderButtons.js b/node_modules/react-navigation-header-buttons/src/HeaderButtons.js -index 70ff376..01fba5e 100644 ---- a/node_modules/react-navigation-header-buttons/src/HeaderButtons.js -+++ b/node_modules/react-navigation-header-buttons/src/HeaderButtons.js -@@ -144,6 +144,6 @@ const styles = StyleSheet.create({ - }), - }, - button: { -- marginHorizontal: 11, -+ marginHorizontal: 6 - }, - }); diff --git a/storybook/stories/HeaderButtons.js b/storybook/stories/HeaderButtons.js new file mode 100644 index 0000000000..0d2243c784 --- /dev/null +++ b/storybook/stories/HeaderButtons.js @@ -0,0 +1,162 @@ +/* eslint-disable import/no-extraneous-dependencies, import/no-unresolved, import/extensions, react/prop-types */ +import React from 'react'; +import { storiesOf } from '@storybook/react-native'; +import { View } from 'react-native'; + +import * as HeaderButton from '../../app/containers/HeaderButton'; +import Header from '../../app/containers/Header'; +import { ThemeContext } from '../../app/theme'; + +const stories = storiesOf('Header Buttons', module); + +const HeaderExample = ({ left, right }) => ( +
} + headerRight={right} + /> +); + +stories.add('title', () => ( + <> + ( + + + + )} + right={() => ( + + + + )} + /> + ( + + + + + )} + right={() => ( + + + + + )} + /> + +)); + +stories.add('icons', () => ( + <> + ( + + + + )} + right={() => ( + + + + )} + /> + ( + + + + + )} + right={() => ( + + + + + )} + /> + +)); + +stories.add('badge', () => ( + <> + ( + + } /> + } /> + } /> + + )} + /> + +)); + +const ThemeStory = ({ theme }) => ( + + ( + + + + )} + right={() => ( + + + } /> + + )} + /> + +); + +stories.add('themes', () => ( + <> + + + + +)); + +stories.add('common', () => ( + <> + ( + + )} + /> + ( + + )} + /> + ( + + )} + /> + ( + + )} + /> + ( + + )} + /> + ( + + )} + /> + ( + + )} + /> + +)); diff --git a/storybook/stories/RoomItem.js b/storybook/stories/RoomItem.js index a4d221526a..a4cf156ec4 100644 --- a/storybook/stories/RoomItem.js +++ b/storybook/stories/RoomItem.js @@ -73,10 +73,9 @@ export default ({ theme }) => { - - - + + ( + + {children} + +); + +stories.add('all', () => ( + + + + + + + + + +)); + +stories.add('small', () => ( + + + + +)); + +stories.add('normal', () => ( + + + + +)); + +stories.add('different mention types', () => ( + + + + + + + + + +)); + +const ThemeStory = ({ theme }) => ( + + + + + + + + +); + +stories.add('themes', () => ( + <> + + + + +)); diff --git a/storybook/stories/index.js b/storybook/stories/index.js index 915944f889..d9de68803b 100644 --- a/storybook/stories/index.js +++ b/storybook/stories/index.js @@ -10,6 +10,8 @@ import Message from './Message'; import UiKitMessage from './UiKitMessage'; import UiKitModal from './UiKitModal'; import Markdown from './Markdown'; +import './HeaderButtons'; +import './UnreadBadge'; import Avatar from './Avatar'; // import RoomViewHeader from './RoomViewHeader'; diff --git a/yarn.lock b/yarn.lock index 199afe57fe..e2b1a48864 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12891,7 +12891,7 @@ react-native-picker-select@7.0.0: dependencies: lodash.isequal "^4.5.0" -react-native-platform-touchable@1.1.1, react-native-platform-touchable@^1.1.1: +react-native-platform-touchable@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/react-native-platform-touchable/-/react-native-platform-touchable-1.1.1.tgz#fde4acc65eea585d28b164d0c3716a42129a68e4" integrity sha1-/eSsxl7qWF0osWTQw3FqQhKaaOQ= @@ -13068,13 +13068,6 @@ react-native@^0.63.1: use-subscription "^1.0.0" whatwg-fetch "^3.0.0" -react-navigation-header-buttons@3.0.5: - version "3.0.5" - resolved "https://registry.yarnpkg.com/react-navigation-header-buttons/-/react-navigation-header-buttons-3.0.5.tgz#5b8c0fc32bc59382f02015e4b2f19a135b99dca4" - integrity sha512-b1AsL9k6Klp72CnAq4IF0xgw94FClBIsUr/pGUKa1PI+mStdF0AYZzi9qtYgqQNDIOpqxQ2xYUM9azL2VmPUeQ== - dependencies: - react-native-platform-touchable "^1.1.1" - react-popper-tooltip@^2.8.3: version "2.11.1" resolved "https://registry.yarnpkg.com/react-popper-tooltip/-/react-popper-tooltip-2.11.1.tgz#3c4bdfd8bc10d1c2b9a162e859bab8958f5b2644"