From 2b81cea27770c0bc75a6bcf9f8ef96383532bba4 Mon Sep 17 00:00:00 2001 From: Jori Lallo Date: Sun, 4 Feb 2018 17:27:57 -0800 Subject: [PATCH] Search fixes --- app/scenes/Search/Search.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/app/scenes/Search/Search.js b/app/scenes/Search/Search.js index 8766e3789..1a5f22b6e 100644 --- a/app/scenes/Search/Search.js +++ b/app/scenes/Search/Search.js @@ -68,6 +68,7 @@ class Search extends Component { @observable offset: number = 0; @observable allowLoadMore: boolean = true; @observable isFetching = false; + @observable pinToTop = false; componentDidMount() { this.handleQueryChange(); @@ -103,7 +104,9 @@ class Search extends Component { handleQueryChange = () => { const query = this.props.match.params.query; - this.query = query ? decodeURIComponent(query) : ''; + this.query = query ? query : ''; + this.resultIds = []; + this.offset = 0; this.allowLoadMore = true; // To prevent "no results" showing before debounce kicks in @@ -137,6 +140,7 @@ class Search extends Component { limit: DEFAULT_PAGINATION_LIMIT, }); this.resultIds = this.resultIds.concat(newResults); + if (this.resultIds.length > 0) this.pinToTop = true; if ( newResults.length === 0 || newResults.length < DEFAULT_PAGINATION_LIMIT @@ -150,6 +154,7 @@ class Search extends Component { } } else { this.resultIds = []; + this.pinToTop = false; } this.isFetching = false; @@ -172,8 +177,8 @@ class Search extends Component { render() { const { documents, notFound } = this.props; - const hasResults = this.resultIds.length > 0; - const showEmpty = !this.isFetching && this.query && !hasResults; + const showEmpty = + !this.isFetching && this.query && this.resultIds.length === 0; return ( @@ -185,14 +190,14 @@ class Search extends Component {

We’re unable to find the page you’re accessing.

)} - + {showEmpty && No matching documents.} - +