[Glitch] Improve load gap styling in web UI
Port 45c9f16f71 to glitch-soc
			
			
This commit is contained in:
		
							
								
								
									
										33
									
								
								app/javascript/flavours/glitch/components/load_gap.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								app/javascript/flavours/glitch/components/load_gap.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,33 @@ | ||||
| import React from 'react'; | ||||
| import PropTypes from 'prop-types'; | ||||
| import { injectIntl, defineMessages } from 'react-intl'; | ||||
|  | ||||
| const messages = defineMessages({ | ||||
|   load_more: { id: 'status.load_more', defaultMessage: 'Load more' }, | ||||
| }); | ||||
|  | ||||
| @injectIntl | ||||
| export default class LoadGap extends React.PureComponent { | ||||
|  | ||||
|   static propTypes = { | ||||
|     disabled: PropTypes.bool, | ||||
|     maxId: PropTypes.string, | ||||
|     onClick: PropTypes.func.isRequired, | ||||
|     intl: PropTypes.object.isRequired, | ||||
|   }; | ||||
|  | ||||
|   handleClick = () => { | ||||
|     this.props.onClick(this.props.maxId); | ||||
|   } | ||||
|  | ||||
|   render () { | ||||
|     const { disabled, intl } = this.props; | ||||
|  | ||||
|     return ( | ||||
|       <button className='load-more load-gap' disabled={disabled} onClick={this.handleClick} aria-label={intl.formatMessage(messages.load_more)}> | ||||
|         <i className='fa fa-ellipsis-h' /> | ||||
|       </button> | ||||
|     ); | ||||
|   } | ||||
|  | ||||
| } | ||||
| @@ -4,28 +4,10 @@ import ImmutablePropTypes from 'react-immutable-proptypes'; | ||||
| import PropTypes from 'prop-types'; | ||||
| import StatusContainer from 'flavours/glitch/containers/status_container'; | ||||
| import ImmutablePureComponent from 'react-immutable-pure-component'; | ||||
| import LoadMore from './load_more'; | ||||
| import LoadGap from './load_gap'; | ||||
| import ScrollableList from './scrollable_list'; | ||||
| import { FormattedMessage } from 'react-intl'; | ||||
|  | ||||
| class LoadGap extends ImmutablePureComponent { | ||||
|  | ||||
|   static propTypes = { | ||||
|     disabled: PropTypes.bool, | ||||
|     maxId: PropTypes.string, | ||||
|     onClick: PropTypes.func.isRequired, | ||||
|   }; | ||||
|  | ||||
|   handleClick = () => { | ||||
|     this.props.onClick(this.props.maxId); | ||||
|   } | ||||
|  | ||||
|   render () { | ||||
|     return <LoadMore onClick={this.handleClick} disabled={this.props.disabled} />; | ||||
|   } | ||||
|  | ||||
| } | ||||
|  | ||||
| export default class StatusList extends ImmutablePureComponent { | ||||
|  | ||||
|   static propTypes = { | ||||
|   | ||||
| @@ -17,7 +17,7 @@ import { createSelector } from 'reselect'; | ||||
| import { List as ImmutableList } from 'immutable'; | ||||
| import { debounce } from 'lodash'; | ||||
| import ScrollableList from 'flavours/glitch/components/scrollable_list'; | ||||
| import LoadMore from 'flavours/glitch/components/load_more'; | ||||
| import LoadGap from 'flavours/glitch/components/load_gap'; | ||||
|  | ||||
| const messages = defineMessages({ | ||||
|   title: { id: 'column.notifications', defaultMessage: 'Notifications' }, | ||||
| @@ -28,24 +28,6 @@ const getNotifications = createSelector([ | ||||
|   state => state.getIn(['notifications', 'items']), | ||||
| ], (excludedTypes, notifications) => notifications.filterNot(item => item !== null && excludedTypes.includes(item.get('type')))); | ||||
|  | ||||
| class LoadGap extends React.PureComponent { | ||||
|  | ||||
|   static propTypes = { | ||||
|     disabled: PropTypes.bool, | ||||
|     maxId: PropTypes.string, | ||||
|     onClick: PropTypes.func.isRequired, | ||||
|   }; | ||||
|  | ||||
|   handleClick = () => { | ||||
|     this.props.onClick(this.props.maxId); | ||||
|   } | ||||
|  | ||||
|   render () { | ||||
|     return <LoadMore onClick={this.handleClick} disabled={this.props.disabled} />; | ||||
|   } | ||||
|  | ||||
| } | ||||
|  | ||||
| const mapStateToProps = state => ({ | ||||
|   notifications: getNotifications(state), | ||||
|   localSettings:  state.get('local_settings'), | ||||
|   | ||||
| @@ -848,6 +848,10 @@ | ||||
|   } | ||||
| } | ||||
|  | ||||
| .load-gap { | ||||
|   border-bottom: 1px solid lighten($ui-base-color, 8%); | ||||
| } | ||||
|  | ||||
| .missing-indicator { | ||||
|   padding-top: 20px + 48px; | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user