diff --git a/app/scenes/Search/Search.js b/app/scenes/Search/Search.js index 8766e378..4b775110 100644 --- a/app/scenes/Search/Search.js +++ b/app/scenes/Search/Search.js @@ -67,7 +67,8 @@ class Search extends Component { @observable query: string = ''; @observable offset: number = 0; @observable allowLoadMore: boolean = true; - @observable isFetching = false; + @observable isFetching: boolean = false; + @observable pinToTop: boolean = 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.} - + { // middleware koa.use(subdomainRedirect()); koa.use(router.routes()); -koa.use(async () => { - throw httpErrors.NotFound(); -}); export default koa;