[Glitch] Add local only to hashtag timeline
Port front-end changes from 2c7128c7f0ee3073acb9897cda88255982368193 to glitch-soc Signed-off-by: Thibaut Girka <thib@sitedethib.com>
This commit is contained in:
		
							parent
							
								
									63dc7cfa90
								
							
						
					
					
						commit
						7ceeb97f3d
					
				| @ -128,8 +128,7 @@ export const expandAccountTimeline         = (accountId, { maxId, withReplies } | |||||||
| export const expandAccountFeaturedTimeline = accountId => expandTimeline(`account:${accountId}:pinned`, `/api/v1/accounts/${accountId}/statuses`, { pinned: true }); | export const expandAccountFeaturedTimeline = accountId => expandTimeline(`account:${accountId}:pinned`, `/api/v1/accounts/${accountId}/statuses`, { pinned: true }); | ||||||
| export const expandAccountMediaTimeline    = (accountId, { maxId } = {}) => expandTimeline(`account:${accountId}:media`, `/api/v1/accounts/${accountId}/statuses`, { max_id: maxId, only_media: true, limit: 40 }); | export const expandAccountMediaTimeline    = (accountId, { maxId } = {}) => expandTimeline(`account:${accountId}:media`, `/api/v1/accounts/${accountId}/statuses`, { max_id: maxId, only_media: true, limit: 40 }); | ||||||
| export const expandListTimeline            = (id, { maxId } = {}, done = noOp) => expandTimeline(`list:${id}`, `/api/v1/timelines/list/${id}`, { max_id: maxId }, done); | export const expandListTimeline            = (id, { maxId } = {}, done = noOp) => expandTimeline(`list:${id}`, `/api/v1/timelines/list/${id}`, { max_id: maxId }, done); | ||||||
| 
 | export const expandHashtagTimeline         = (hashtag, { maxId, tags, local } = {}, done = noOp) => { | ||||||
| export const expandHashtagTimeline       = (hashtag, { maxId, tags } = {}, done = noOp) => { |  | ||||||
|   return expandTimeline(`hashtag:${hashtag}`, `/api/v1/timelines/tag/${hashtag}`, { |   return expandTimeline(`hashtag:${hashtag}`, `/api/v1/timelines/tag/${hashtag}`, { | ||||||
|     max_id: maxId, |     max_id: maxId, | ||||||
|     any: parseTags(tags, 'any'), |     any: parseTags(tags, 'any'), | ||||||
|  | |||||||
| @ -38,7 +38,7 @@ export default class TimelineContainer extends React.PureComponent { | |||||||
|     let timeline; |     let timeline; | ||||||
| 
 | 
 | ||||||
|     if (hashtag) { |     if (hashtag) { | ||||||
|       timeline = <HashtagTimeline hashtag={hashtag} />; |       timeline = <HashtagTimeline hashtag={hashtag} local={local} />; | ||||||
|     } else { |     } else { | ||||||
|       timeline = <PublicTimeline local={local} />; |       timeline = <PublicTimeline local={local} />; | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -4,6 +4,7 @@ import ImmutablePropTypes from 'react-immutable-proptypes'; | |||||||
| import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; | import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; | ||||||
| import Toggle from 'react-toggle'; | import Toggle from 'react-toggle'; | ||||||
| import AsyncSelect from 'react-select/async'; | import AsyncSelect from 'react-select/async'; | ||||||
|  | import SettingToggle from '../../notifications/components/setting_toggle'; | ||||||
| 
 | 
 | ||||||
| const messages = defineMessages({ | const messages = defineMessages({ | ||||||
|   placeholder: { id: 'hashtag.column_settings.select.placeholder', defaultMessage: 'Enter hashtags…' }, |   placeholder: { id: 'hashtag.column_settings.select.placeholder', defaultMessage: 'Enter hashtags…' }, | ||||||
| @ -87,6 +88,8 @@ class ColumnSettings extends React.PureComponent { | |||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   render () { |   render () { | ||||||
|  |     const { settings, onChange } = this.props; | ||||||
|  | 
 | ||||||
|     return ( |     return ( | ||||||
|       <div> |       <div> | ||||||
|         <div className='column-settings__row'> |         <div className='column-settings__row'> | ||||||
| @ -106,6 +109,10 @@ class ColumnSettings extends React.PureComponent { | |||||||
|             {this.modeSelect('none')} |             {this.modeSelect('none')} | ||||||
|           </div> |           </div> | ||||||
|         )} |         )} | ||||||
|  | 
 | ||||||
|  |         <div className='column-settings__row'> | ||||||
|  |           <SettingToggle settings={settings} settingPath={['local']} onChange={onChange} label={<FormattedMessage id='community.column_settings.local_only' defaultMessage='Local only' />} /> | ||||||
|  |         </div> | ||||||
|       </div> |       </div> | ||||||
|     ); |     ); | ||||||
|   } |   } | ||||||
|  | |||||||
| @ -97,21 +97,21 @@ class HashtagTimeline extends React.PureComponent { | |||||||
| 
 | 
 | ||||||
|   componentDidMount () { |   componentDidMount () { | ||||||
|     const { dispatch } = this.props; |     const { dispatch } = this.props; | ||||||
|     const { id, tags } = this.props.params; |     const { id, tags, local } = this.props.params; | ||||||
| 
 | 
 | ||||||
|     this._subscribe(dispatch, id, tags); |     this._subscribe(dispatch, id, tags); | ||||||
|     dispatch(expandHashtagTimeline(id, { tags })); |     dispatch(expandHashtagTimeline(id, { tags, local })); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   componentWillReceiveProps (nextProps) { |   componentWillReceiveProps (nextProps) { | ||||||
|     const { dispatch, params } = this.props; |     const { dispatch, params } = this.props; | ||||||
|     const { id, tags } = nextProps.params; |     const { id, tags, local } = nextProps.params; | ||||||
| 
 | 
 | ||||||
|     if (id !== params.id || !isEqual(tags, params.tags)) { |     if (id !== params.id || !isEqual(tags, params.tags) || !isEqual(local, params.local)) { | ||||||
|       this._unsubscribe(); |       this._unsubscribe(); | ||||||
|       this._subscribe(dispatch, id, tags); |       this._subscribe(dispatch, id, tags); | ||||||
|       this.props.dispatch(clearTimeline(`hashtag:${id}`)); |       dispatch(clearTimeline(`hashtag:${id}`)); | ||||||
|       this.props.dispatch(expandHashtagTimeline(id, { tags })); |       dispatch(expandHashtagTimeline(id, { tags, local })); | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
| @ -124,8 +124,8 @@ class HashtagTimeline extends React.PureComponent { | |||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   handleLoadMore = maxId => { |   handleLoadMore = maxId => { | ||||||
|     const { id, tags } = this.props.params; |     const { id, tags, local } = this.props.params; | ||||||
|     this.props.dispatch(expandHashtagTimeline(id, { maxId, tags })); |     this.props.dispatch(expandHashtagTimeline(id, { maxId, tags, local })); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   render () { |   render () { | ||||||
|  | |||||||
| @ -24,19 +24,25 @@ class HashtagTimeline extends React.PureComponent { | |||||||
|     isLoading: PropTypes.bool.isRequired, |     isLoading: PropTypes.bool.isRequired, | ||||||
|     hasMore: PropTypes.bool.isRequired, |     hasMore: PropTypes.bool.isRequired, | ||||||
|     hashtag: PropTypes.string.isRequired, |     hashtag: PropTypes.string.isRequired, | ||||||
|  |     local: PropTypes.bool.isRequired, | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   static defaultProps = { | ||||||
|  |     local: false, | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   componentDidMount () { |   componentDidMount () { | ||||||
|     const { dispatch, hashtag } = this.props; |     const { dispatch, hashtag, local } = this.props; | ||||||
| 
 | 
 | ||||||
|     dispatch(expandHashtagTimeline(hashtag)); |     dispatch(expandHashtagTimeline(hashtag, { local })); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   handleLoadMore = () => { |   handleLoadMore = () => { | ||||||
|     const maxId = this.props.statusIds.last(); |     const { dispatch, hashtag, local, statusIds } = this.props; | ||||||
|  |     const maxId = statusIds.last(); | ||||||
| 
 | 
 | ||||||
|     if (maxId) { |     if (maxId) { | ||||||
|       this.props.dispatch(expandHashtagTimeline(this.props.hashtag, { maxId })); |       dispatch(expandHashtagTimeline(hashtag, { maxId, local })); | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user