Fix reworked search
This commit is contained in:
		
							parent
							
								
									3a636e4c9b
								
							
						
					
					
						commit
						3c6e9ee33c
					
				
					 8 changed files with 30 additions and 23 deletions
				
			
		| 
						 | 
				
			
			@ -25,6 +25,10 @@ export function submitSearch() {
 | 
			
		|||
  return (dispatch, getState) => {
 | 
			
		||||
    const value = getState().getIn(['search', 'value']);
 | 
			
		||||
 | 
			
		||||
    if (value.length === 0) {
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    dispatch(fetchSearchRequest());
 | 
			
		||||
 | 
			
		||||
    api(getState).get('/api/v1/search', {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,6 +10,7 @@ const Search = React.createClass({
 | 
			
		|||
 | 
			
		||||
  propTypes: {
 | 
			
		||||
    value: React.PropTypes.string.isRequired,
 | 
			
		||||
    submitted: React.PropTypes.bool,
 | 
			
		||||
    onChange: React.PropTypes.func.isRequired,
 | 
			
		||||
    onSubmit: React.PropTypes.func.isRequired,
 | 
			
		||||
    onClear: React.PropTypes.func.isRequired,
 | 
			
		||||
| 
						 | 
				
			
			@ -40,8 +41,8 @@ const Search = React.createClass({
 | 
			
		|||
  },
 | 
			
		||||
 | 
			
		||||
  render () {
 | 
			
		||||
    const { intl, value } = this.props;
 | 
			
		||||
    const hasValue = value.length > 0;
 | 
			
		||||
    const { intl, value, submitted } = this.props;
 | 
			
		||||
    const hasValue = value.length > 0 || submitted;
 | 
			
		||||
 | 
			
		||||
    return (
 | 
			
		||||
      <div className='search'>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,7 +8,8 @@ import {
 | 
			
		|||
import Search from '../components/search';
 | 
			
		||||
 | 
			
		||||
const mapStateToProps = state => ({
 | 
			
		||||
  value: state.getIn(['search', 'value'])
 | 
			
		||||
  value: state.getIn(['search', 'value']),
 | 
			
		||||
  submitted: state.getIn(['search', 'submitted'])
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
const mapDispatchToProps = dispatch => ({
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -70,9 +70,9 @@ const Compose = React.createClass({
 | 
			
		|||
            <ComposeFormContainer />
 | 
			
		||||
          </div>
 | 
			
		||||
 | 
			
		||||
          <Motion defaultStyle={{ x: -300 }} style={{ x: spring(showSearch ? 0 : -300, { stiffness: 210, damping: 20 }) }}>
 | 
			
		||||
          <Motion defaultStyle={{ x: -100 }} style={{ x: spring(showSearch ? 0 : -100, { stiffness: 210, damping: 20 }) }}>
 | 
			
		||||
            {({ x }) =>
 | 
			
		||||
              <div className='drawer__inner darker' style={{ transform: `translateX(${x}px)` }}>
 | 
			
		||||
              <div className='drawer__inner darker' style={{ transform: `translateX(${x}%)` }}>
 | 
			
		||||
                <SearchResultsContainer />
 | 
			
		||||
              </div>
 | 
			
		||||
            }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -43,8 +43,6 @@ const GettingStarted = ({ intl, me }) => {
 | 
			
		|||
 | 
			
		||||
      <div className='scrollable optionally-scrollable' style={{ display: 'flex', flexDirection: 'column' }}>
 | 
			
		||||
        <div className='static-content getting-started'>
 | 
			
		||||
          <p><FormattedMessage id='getting_started.about_addressing' defaultMessage='You can follow people if you know their username and the domain they are on by entering an e-mail-esque address into the form at the top of the sidebar.' /></p>
 | 
			
		||||
          <p><FormattedMessage id='getting_started.about_shortcuts' defaultMessage='If the target user is on the same domain as you, just the username will work. The same rule applies to mentioning people in statuses.' /></p>
 | 
			
		||||
          <p><FormattedMessage id='getting_started.open_source_notice' defaultMessage='Mastodon is open source software. You can contribute or report issues on github at {github}. {apps}.' values={{ github: <a href="https://github.com/tootsuite/mastodon" target="_blank">tootsuite/mastodon</a>, apps: <a href="https://github.com/tootsuite/mastodon/blob/master/docs/Using-Mastodon/Apps.md" target="_blank"><FormattedMessage id='getting_started.apps' defaultMessage='Various apps are available' /></a> }} /></p>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1120,9 +1120,8 @@ a.status__content__spoiler-link {
 | 
			
		|||
  box-sizing: border-box;
 | 
			
		||||
  overflow-y: auto;
 | 
			
		||||
  padding-bottom: 235px;
 | 
			
		||||
  background: image-url('mastodon-getting-started.png') no-repeat bottom left;
 | 
			
		||||
  height: auto;
 | 
			
		||||
  min-height: 100%;
 | 
			
		||||
  background: image-url('mastodon-getting-started.png') no-repeat 0 100% local;
 | 
			
		||||
  height: 100%;
 | 
			
		||||
 | 
			
		||||
  p {
 | 
			
		||||
    color: $color2;
 | 
			
		||||
| 
						 | 
				
			
			@ -1793,6 +1792,10 @@ button.active i.fa-retweet {
 | 
			
		|||
    &.active {
 | 
			
		||||
      transform: translateZ(0) rotate(90deg);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    &:hover {
 | 
			
		||||
      color: $color5;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,10 +2,10 @@
 | 
			
		|||
 | 
			
		||||
class SearchService < BaseService
 | 
			
		||||
  def call(query, limit, resolve = false, account = nil)
 | 
			
		||||
    return if query.blank?
 | 
			
		||||
 | 
			
		||||
    results = { accounts: [], hashtags: [], statuses: [] }
 | 
			
		||||
 | 
			
		||||
    return results if query.blank?
 | 
			
		||||
 | 
			
		||||
    if query =~ /\Ahttps?:\/\//
 | 
			
		||||
      resource = FetchRemoteResourceService.new.call(query)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue