parent
cd765f26a9
commit
09218d4c01
@ -0,0 +1,11 @@ |
|||||||
|
import Avatar from '../../../components/avatar'; |
||||||
|
import DisplayName from '../../../components/display_name'; |
||||||
|
|
||||||
|
const AutosuggestAccount = ({ account }) => ( |
||||||
|
<div style={{ overflow: 'hidden' }}> |
||||||
|
<div style={{ float: 'left', marginRight: '5px' }}><Avatar src={account.get('avatar')} size={18} /></div> |
||||||
|
<DisplayName account={account} /> |
||||||
|
</div> |
||||||
|
); |
||||||
|
|
||||||
|
export default AutosuggestAccount; |
@ -0,0 +1,15 @@ |
|||||||
|
import { connect } from 'react-redux'; |
||||||
|
import AutosuggestAccount from '../components/autosuggest_account'; |
||||||
|
import { makeGetAccount } from '../../../selectors'; |
||||||
|
|
||||||
|
const makeMapStateToProps = () => { |
||||||
|
const getAccount = makeGetAccount(); |
||||||
|
|
||||||
|
const mapStateToProps = (state, { id }) => ({ |
||||||
|
account: getAccount(state, id) |
||||||
|
}); |
||||||
|
|
||||||
|
return mapStateToProps; |
||||||
|
}; |
||||||
|
|
||||||
|
export default connect(makeMapStateToProps)(AutosuggestAccount); |
@ -0,0 +1,25 @@ |
|||||||
|
class SearchService < BaseService |
||||||
|
def call(query, resolve = false) |
||||||
|
return if query.blank? |
||||||
|
|
||||||
|
username, domain = query.split('@') |
||||||
|
|
||||||
|
if domain.nil? |
||||||
|
search_all(username) |
||||||
|
else |
||||||
|
search_or_resolve(username, domain, resolve) |
||||||
|
end |
||||||
|
end |
||||||
|
|
||||||
|
private |
||||||
|
|
||||||
|
def search_all(username) |
||||||
|
Account.search_for(username) |
||||||
|
end |
||||||
|
|
||||||
|
def search_or_resolve(username, domain, resolve) |
||||||
|
results = Account.search_for("#{username} #{domain}") |
||||||
|
return [FollowRemoteAccountService.new.call("#{username}@#{domain}")] if results.empty? && resolve |
||||||
|
results |
||||||
|
end |
||||||
|
end |
Loading…
Reference in new issue