Hide list panel from nav bar in mobile layout (#19337)
This commit is contained in:
		
					parent
					
						
							
								05148e2c77
							
						
					
				
			
			
				commit
				
					
						d787343325
					
				
			
		
					 5 changed files with 26 additions and 11 deletions
				
			
		|  | @ -1,12 +1,12 @@ | ||||||
| import React from 'react'; | import React from 'react'; | ||||||
| import PropTypes from 'prop-types'; | import PropTypes from 'prop-types'; | ||||||
|  | import { createSelector } from 'reselect'; | ||||||
| import ImmutablePropTypes from 'react-immutable-proptypes'; | import ImmutablePropTypes from 'react-immutable-proptypes'; | ||||||
| import ImmutablePureComponent from 'react-immutable-pure-component'; | import ImmutablePureComponent from 'react-immutable-pure-component'; | ||||||
| import { fetchLists } from 'mastodon/actions/lists'; |  | ||||||
| import { connect } from 'react-redux'; | import { connect } from 'react-redux'; | ||||||
| import { createSelector } from 'reselect'; | import { withRouter } from 'react-router-dom'; | ||||||
| import { NavLink, withRouter } from 'react-router-dom'; | import { fetchLists } from 'mastodon/actions/lists'; | ||||||
| import Icon from 'mastodon/components/icon'; | import ColumnLink from './column_link'; | ||||||
| 
 | 
 | ||||||
| const getOrderedLists = createSelector([state => state.get('lists')], lists => { | const getOrderedLists = createSelector([state => state.get('lists')], lists => { | ||||||
|   if (!lists) { |   if (!lists) { | ||||||
|  | @ -42,11 +42,11 @@ class ListPanel extends ImmutablePureComponent { | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     return ( |     return ( | ||||||
|       <div> |       <div className='list-panel'> | ||||||
|         <hr /> |         <hr /> | ||||||
| 
 | 
 | ||||||
|         {lists.map(list => ( |         {lists.map(list => ( | ||||||
|           <NavLink key={list.get('id')} className='column-link column-link--transparent' strict to={`/lists/${list.get('id')}`}><Icon className='column-link__icon' id='list-ul' fixedWidth />{list.get('title')}</NavLink> |           <ColumnLink icon='list-ul' key={list.get('id')} strict text={list.get('title')} to={`/lists/${list.get('id')}`} transparent /> | ||||||
|         ))} |         ))} | ||||||
|       </div> |       </div> | ||||||
|     ); |     ); | ||||||
|  |  | ||||||
|  | @ -5,11 +5,11 @@ import { Link } from 'react-router-dom'; | ||||||
| import Logo from 'mastodon/components/logo'; | import Logo from 'mastodon/components/logo'; | ||||||
| import TrendsContainer from 'mastodon/features/getting_started/containers/trends_container'; | import TrendsContainer from 'mastodon/features/getting_started/containers/trends_container'; | ||||||
| import { showTrends, timelinePreview } from 'mastodon/initial_state'; | import { showTrends, timelinePreview } from 'mastodon/initial_state'; | ||||||
|  | import ColumnLink from './column_link'; | ||||||
| import FollowRequestsColumnLink from './follow_requests_column_link'; | import FollowRequestsColumnLink from './follow_requests_column_link'; | ||||||
| import ListPanel from './list_panel'; | import ListPanel from './list_panel'; | ||||||
| import NotificationsCounterIcon from './notifications_counter_icon'; | import NotificationsCounterIcon from './notifications_counter_icon'; | ||||||
| import SignInBanner from './sign_in_banner'; | import SignInBanner from './sign_in_banner'; | ||||||
| import ColumnLink from 'mastodon/features/ui/components/column_link'; |  | ||||||
| 
 | 
 | ||||||
| const messages = defineMessages({ | const messages = defineMessages({ | ||||||
|   home: { id: 'tabs_bar.home', defaultMessage: 'Home' }, |   home: { id: 'tabs_bar.home', defaultMessage: 'Home' }, | ||||||
|  |  | ||||||
|  | @ -1,10 +1,19 @@ | ||||||
|  | // @ts-check
 | ||||||
|  | 
 | ||||||
| import { supportsPassiveEvents } from 'detect-passive-events'; | import { supportsPassiveEvents } from 'detect-passive-events'; | ||||||
| import { forceSingleColumn } from 'mastodon/initial_state'; | import { forceSingleColumn } from 'mastodon/initial_state'; | ||||||
| 
 | 
 | ||||||
| const LAYOUT_BREAKPOINT = 630; | const LAYOUT_BREAKPOINT = 630; | ||||||
| 
 | 
 | ||||||
|  | /** | ||||||
|  |  * @param {number} width | ||||||
|  |  * @returns {boolean} | ||||||
|  |  */ | ||||||
| export const isMobile = width => width <= LAYOUT_BREAKPOINT; | export const isMobile = width => width <= LAYOUT_BREAKPOINT; | ||||||
| 
 | 
 | ||||||
|  | /** | ||||||
|  |  * @returns {string} | ||||||
|  |  */ | ||||||
| export const layoutFromWindow = () => { | export const layoutFromWindow = () => { | ||||||
|   if (isMobile(window.innerWidth)) { |   if (isMobile(window.innerWidth)) { | ||||||
|     return 'mobile'; |     return 'mobile'; | ||||||
|  | @ -17,11 +26,13 @@ export const layoutFromWindow = () => { | ||||||
| 
 | 
 | ||||||
| const iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; | const iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; | ||||||
| 
 | 
 | ||||||
|  | const listenerOptions = supportsPassiveEvents ? { passive: true } : false; | ||||||
|  | 
 | ||||||
| let userTouching = false; | let userTouching = false; | ||||||
| let listenerOptions = supportsPassiveEvents ? { passive: true } : false; |  | ||||||
| 
 | 
 | ||||||
| const touchListener = () => { | const touchListener = () => { | ||||||
|   userTouching = true; |   userTouching = true; | ||||||
|  | 
 | ||||||
|   window.removeEventListener('touchstart', touchListener, listenerOptions); |   window.removeEventListener('touchstart', touchListener, listenerOptions); | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -163,8 +163,8 @@ $small-breakpoint: 960px; | ||||||
|     th, |     th, | ||||||
|     td { |     td { | ||||||
|       padding: 8px; |       padding: 8px; | ||||||
|       align-self: start; |       align-self: flex-start; | ||||||
|       align-items: start; |       align-items: flex-start; | ||||||
|       word-break: break-all; |       word-break: break-all; | ||||||
| 
 | 
 | ||||||
|       &.nowrap { |       &.nowrap { | ||||||
|  |  | ||||||
|  | @ -2673,6 +2673,10 @@ $ui-header-height: 55px; | ||||||
|     .column-link span { |     .column-link span { | ||||||
|       display: none; |       display: none; | ||||||
|     } |     } | ||||||
|  | 
 | ||||||
|  |     .list-panel { | ||||||
|  |       display: none; | ||||||
|  |     } | ||||||
|   } |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -2755,7 +2759,7 @@ $ui-header-height: 55px; | ||||||
| 
 | 
 | ||||||
| .column-actions { | .column-actions { | ||||||
|   display: flex; |   display: flex; | ||||||
|   align-items: start; |   align-items: flex-start; | ||||||
|   justify-content: center; |   justify-content: center; | ||||||
|   padding: 40px; |   padding: 40px; | ||||||
|   padding-top: 40px; |   padding-top: 40px; | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue