Search analytics event using debounce

This commit is contained in:
svetlagasheva 2021-02-26 16:35:19 +02:00
parent b83568cc33
commit ca81562f04

View file

@ -3,6 +3,7 @@
const React = require('react'); const React = require('react');
const PropTypes = require('prop-types'); const PropTypes = require('prop-types');
const classnames = require('classnames'); const classnames = require('classnames');
const debounce = require('lodash.debounce');
const Icon = require('@stremio/stremio-icons/dom'); const Icon = require('@stremio/stremio-icons/dom');
const { useServices } = require('stremio/services'); const { useServices } = require('stremio/services');
const { Image, MainNavBars, MetaRow, MetaItem, useDeepEqualMemo } = require('stremio/common'); const { Image, MainNavBars, MetaRow, MetaItem, useDeepEqualMemo } = require('stremio/common');
@ -24,17 +25,18 @@ const Search = ({ queryParams }) => {
: :
null; null;
}, [search.selected]); }, [search.selected]);
React.useEffect(() => { const debounceAnanlytics = debounce((query, search) => {
if (query !== null && core.active && search.catalogs.every((catalog) => catalog.content.type !== 'Loading')) { if (query !== null && core.active) {
const rows = search.catalogs.length; const responses_count = search.catalogs.filter((catalog) => catalog.content.type !== 'Loading').length;
core.transport.analytics({ core.transport.analytics({
event: 'Search', event: 'Search',
args: { args: {
query, rows query, responses_count
} }
}); });
} }
}, [search]); }, 500, { leading: false });
React.useEffect(() => { debounceAnanlytics(query, search); }, [search]);
return ( return (
<MainNavBars className={styles['search-container']} route={'search'} query={query}> <MainNavBars className={styles['search-container']} route={'search'} query={query}>
<div className={styles['search-content']}> <div className={styles['search-content']}>