Add search item to tab bar for mobile devices (#7072)
* Add search item to tab bar for mobile devices * Fix missing prop validation
This commit is contained in:
		
							parent
							
								
									cd0eaa349c
								
							
						
					
					
						commit
						c9cbb8de70
					
				@ -38,6 +38,7 @@ export default class Compose extends React.PureComponent {
 | 
			
		||||
    columns: ImmutablePropTypes.list.isRequired,
 | 
			
		||||
    multiColumn: PropTypes.bool,
 | 
			
		||||
    showSearch: PropTypes.bool,
 | 
			
		||||
    isSearchPage: PropTypes.bool,
 | 
			
		||||
    intl: PropTypes.object.isRequired,
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
@ -58,7 +59,7 @@ export default class Compose extends React.PureComponent {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  render () {
 | 
			
		||||
    const { multiColumn, showSearch, intl } = this.props;
 | 
			
		||||
    const { multiColumn, showSearch, isSearchPage, intl } = this.props;
 | 
			
		||||
 | 
			
		||||
    let header = '';
 | 
			
		||||
 | 
			
		||||
@ -102,7 +103,7 @@ export default class Compose extends React.PureComponent {
 | 
			
		||||
            )}
 | 
			
		||||
          </div>
 | 
			
		||||
 | 
			
		||||
          <Motion defaultStyle={{ x: -100 }} style={{ x: spring(showSearch ? 0 : -100, { stiffness: 210, damping: 20 }) }}>
 | 
			
		||||
          <Motion defaultStyle={{ x: isSearchPage ? 0 : -100 }} style={{ x: spring(showSearch || isSearchPage ? 0 : -100, { stiffness: 210, damping: 20 }) }}>
 | 
			
		||||
            {({ x }) => (
 | 
			
		||||
              <div className='drawer__inner darker' style={{ transform: `translateX(${x}%)`, visibility: x === -100 ? 'hidden' : 'visible' }}>
 | 
			
		||||
                <SearchResultsContainer />
 | 
			
		||||
 | 
			
		||||
@ -8,6 +8,7 @@ import { isUserTouching } from '../../../is_mobile';
 | 
			
		||||
export const links = [
 | 
			
		||||
  <NavLink className='tabs-bar__link primary' to='/timelines/home' data-preview-title-id='column.home' data-preview-icon='home' ><i className='fa fa-fw fa-home' /><FormattedMessage id='tabs_bar.home' defaultMessage='Home' /></NavLink>,
 | 
			
		||||
  <NavLink className='tabs-bar__link primary' to='/notifications' data-preview-title-id='column.notifications' data-preview-icon='bell' ><i className='fa fa-fw fa-bell' /><FormattedMessage id='tabs_bar.notifications' defaultMessage='Notifications' /></NavLink>,
 | 
			
		||||
  <NavLink className='tabs-bar__link primary' to='/search' data-preview-title-id='tabs_bar.search' data-preview-icon='bell' ><i className='fa fa-fw fa-search' /><FormattedMessage id='tabs_bar.search' defaultMessage='Search' /></NavLink>,
 | 
			
		||||
 | 
			
		||||
  <NavLink className='tabs-bar__link secondary' to='/timelines/public/local' data-preview-title-id='column.community' data-preview-icon='users' ><i className='fa fa-fw fa-users' /><FormattedMessage id='tabs_bar.local_timeline' defaultMessage='Local' /></NavLink>,
 | 
			
		||||
  <NavLink className='tabs-bar__link secondary' exact to='/timelines/public' data-preview-title-id='column.public' data-preview-icon='globe' ><i className='fa fa-fw fa-globe' /><FormattedMessage id='tabs_bar.federated_timeline' defaultMessage='Federated' /></NavLink>,
 | 
			
		||||
 | 
			
		||||
@ -146,6 +146,8 @@ class SwitchingColumnsArea extends React.PureComponent {
 | 
			
		||||
          <WrappedRoute path='/favourites' component={FavouritedStatuses} content={children} />
 | 
			
		||||
          <WrappedRoute path='/pinned' component={PinnedStatuses} content={children} />
 | 
			
		||||
 | 
			
		||||
          <WrappedRoute path='/search' component={Compose} content={children} componentParams={{ isSearchPage: true }} />
 | 
			
		||||
 | 
			
		||||
          <WrappedRoute path='/statuses/new' component={Compose} content={children} />
 | 
			
		||||
          <WrappedRoute path='/statuses/:statusId' exact component={Status} content={children} />
 | 
			
		||||
          <WrappedRoute path='/statuses/:statusId/reblogs' component={Reblogs} content={children} />
 | 
			
		||||
 | 
			
		||||
@ -1717,6 +1717,10 @@
 | 
			
		||||
        "defaultMessage": "Notifications",
 | 
			
		||||
        "id": "tabs_bar.notifications"
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "defaultMessage": "Search",
 | 
			
		||||
        "id": "tabs_bar.search"
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "defaultMessage": "Local",
 | 
			
		||||
        "id": "tabs_bar.local_timeline"
 | 
			
		||||
 | 
			
		||||
@ -269,6 +269,7 @@
 | 
			
		||||
  "tabs_bar.home": "Home",
 | 
			
		||||
  "tabs_bar.local_timeline": "Local",
 | 
			
		||||
  "tabs_bar.notifications": "Notifications",
 | 
			
		||||
  "tabs_bar.search": "Search",
 | 
			
		||||
  "ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
 | 
			
		||||
  "upload_area.title": "Drag & drop to upload",
 | 
			
		||||
  "upload_button.label": "Add media",
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user