diff options
Diffstat (limited to 'web/react/components')
-rw-r--r-- | web/react/components/post_body.jsx | 9 | ||||
-rw-r--r-- | web/react/components/search_results.jsx | 11 | ||||
-rw-r--r-- | web/react/components/settings_sidebar.jsx | 4 | ||||
-rw-r--r-- | web/react/components/team_general_tab.jsx | 46 | ||||
-rw-r--r-- | web/react/components/tutorial/tutorial_intro_screens.jsx | 31 |
5 files changed, 65 insertions, 36 deletions
diff --git a/web/react/components/post_body.jsx b/web/react/components/post_body.jsx index e1f495d54..e4094daf3 100644 --- a/web/react/components/post_body.jsx +++ b/web/react/components/post_body.jsx @@ -77,12 +77,12 @@ export default class PostBody extends React.Component { this.isGifLoading = true; const gif = new Image(); - gif.src = src; gif.onload = ( () => { this.setState({gifLoaded: true}); } ); + gif.src = src; } createGifEmbed(link) { @@ -92,7 +92,12 @@ export default class PostBody extends React.Component { if (!this.state.gifLoaded) { this.loadGif(link); - return null; + return ( + <img + className='gif-div placeholder' + height='500px' + /> + ); } return ( diff --git a/web/react/components/search_results.jsx b/web/react/components/search_results.jsx index ce19c48f0..b56a7b006 100644 --- a/web/react/components/search_results.jsx +++ b/web/react/components/search_results.jsx @@ -83,7 +83,16 @@ export default class SearchResults extends React.Component { var ctls = null; if (noResults) { - ctls = <div className='sidebar--right__subheader'>No results</div>; + ctls = + ( + <div className='sidebar--right__subheader'> + <h4>{'NO RESULTS'}</h4> + <ul> + <li>If you're searching a partial phrase (ex. searching "rea", looking for "reach" or "reaction"), append a * to your search term</li> + <li>Due to the volume of results, two letter searches and common words like "this", "a" and "is" won't appear in search results</li> + </ul> + </div> + ); } else { ctls = results.order.map(function mymap(id) { var post = results.posts[id]; diff --git a/web/react/components/settings_sidebar.jsx b/web/react/components/settings_sidebar.jsx index 4af46c35a..68d9cea48 100644 --- a/web/react/components/settings_sidebar.jsx +++ b/web/react/components/settings_sidebar.jsx @@ -1,10 +1,14 @@ // Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. +var utils = require('../utils/utils.jsx'); export default class SettingsSidebar extends React.Component { componentDidUpdate() { $('.settings-modal').find('.modal-body').scrollTop(0); $('.settings-modal').find('.modal-body').perfectScrollbar('update'); + if (utils.isSafari()) { + $('.settings-modal .settings-links .nav').addClass('absolute'); + } } constructor(props) { super(props); diff --git a/web/react/components/team_general_tab.jsx b/web/react/components/team_general_tab.jsx index c7c4fa2ea..587ef5ec2 100644 --- a/web/react/components/team_general_tab.jsx +++ b/web/react/components/team_general_tab.jsx @@ -372,29 +372,28 @@ export default class GeneralTab extends React.Component { const inputs = []; inputs.push( - <div - key='teamInviteSetting' - className='form-group' - > - <label className='col-sm-5 control-label'>{'Invite Code'}</label> - <div className='col-sm-7'> - <input - className='form-control' - type='text' - onChange={this.updateInviteId} - value={this.state.invite_id} - maxLength='32' - /> - </div> - <div><br/>{'Your Invite Code is used in the URL sent to people to join your team. Regenerating your Invite Code will invalidate the URLs in previous invitations, unless "Allow anyone to sign-up from login page" is enabled.'}</div> - <div className='help-text'> - <button - className='btn btn-default' - onClick={this.handleGenerateInviteId} - > - {'Re-Generate'} - </button> + <div key='teamInviteSetting'> + <div className='row'> + <label className='col-sm-5 control-label'>{'Invite Code'}</label> + <div className='col-sm-7'> + <input + className='form-control' + type='text' + onChange={this.updateInviteId} + value={this.state.invite_id} + maxLength='32' + /> + <div className='padding-top x2'> + <a + href='#' + onClick={this.handleGenerateInviteId} + > + {'Re-Generate'} + </a> + </div> + </div> </div> + <div className='setting-list__hint'>{'When allowing open invites this code is used as part of the signup process. Changing this code will invalidate the previous open signup link.'}</div> </div> ); @@ -493,8 +492,11 @@ export default class GeneralTab extends React.Component { <h3 className='tab-header'>{'General Settings'}</h3> <div className='divider-dark first'/> {nameSection} + <div className='divider-light'/> {openInviteSection} + <div className='divider-light'/> {teamListingSection} + <div className='divider-light'/> {inviteSection} <div className='divider-dark'/> </div> diff --git a/web/react/components/tutorial/tutorial_intro_screens.jsx b/web/react/components/tutorial/tutorial_intro_screens.jsx index 6ea01ab80..a99e9fe28 100644 --- a/web/react/components/tutorial/tutorial_intro_screens.jsx +++ b/web/react/components/tutorial/tutorial_intro_screens.jsx @@ -35,6 +35,9 @@ export default class TutorialIntroScreens extends React.Component { preference = PreferenceStore.setPreference(Preferences.TUTORIAL_STEP, UserStore.getCurrentId(), newValue); AsyncClient.savePreferences([preference]); } + componentDidMount() { + $('.tutorials__scroll').perfectScrollbar(); + } createScreen() { switch (this.state.currentScreen) { case 0: @@ -130,20 +133,26 @@ export default class TutorialIntroScreens extends React.Component { ); } render() { + const height = Utils.windowHeight() - 100; const screen = this.createScreen(); return ( - <div className='tutorial-steps__container'> - <div className='tutorial__content'> - <div className='tutorial__steps'> - {screen} - <button - className='btn btn-primary' - tabIndex='1' - onClick={this.handleNext} - > - {'Next'} - </button> + <div + className='tutorials__scroll' + style={{height}} + > + <div className='tutorial-steps__container'> + <div className='tutorial__content'> + <div className='tutorial__steps'> + {screen} + <button + className='btn btn-primary' + tabIndex='1' + onClick={this.handleNext} + > + {'Next'} + </button> + </div> </div> </div> </div> |