Implementing the Stats component

Explore how we can improve search results and user experience by adding the number of hits based on user search by using the Stats component.

We'll cover the following

Overview

In the previous lesson, we added the highlight feature to our search functionality to improve the user experience and demonstrate the highlighted attribute based on the search query.

In this lesson, we will learn how to add the stats feature to our search functionality to improve the search experience further

The Stats component

The Stats component displays the total number of matching hits from our results. Also, we get the time it takes to receive the results.

import React from 'react';
import {
	Hits,
  InstantSearch,
  SearchBox,
  Stats
} from "react-instantsearch-dom";

class App extends React.Component {
	render() {
		return (
			<div>
				<InstantSearch>
			      <SearchBox/>
                  <Stats />
				  <Hits hitComponent={Hit} />
				</InstantSearch>
			</div>
		);
	}
}

const Hit = (props) => {
  return (
    <div>
      <img
        alt={props.hit.name}
        src={require(`../${props.hit.image}`).default}
      />
      <div className="title">
        <span>{props.hit.name}</span>
      </div>
      <div className="price">£{props.hit.price}</div>
    </div>
  );
};

Stats props

The translations prop takes a value of type object that is optional. This value is a mapping of keys to translations.

<Stats
       translations={{
          stats(nbHits, timeSpentMS) {
            return nbHits > 0
                      ? `Clothing (${nbHits})`
                      : "no results found";
                  },
          },
        }}
 />

Get hands-on with 1400+ tech skills courses.