You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

SpeakerStats.js 1.0KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. // @flow
  2. import React, { useCallback, useEffect } from 'react';
  3. import { useDispatch } from 'react-redux';
  4. import JitsiScreen from '../../../base/modal/components/JitsiScreen';
  5. import { escapeRegexp } from '../../../base/util';
  6. import { resetSearchCriteria, initSearch } from '../../actions';
  7. import SpeakerStatsList from './SpeakerStatsList';
  8. import SpeakerStatsSearch from './SpeakerStatsSearch';
  9. import style from './styles';
  10. /**
  11. * Component that renders the list of speaker stats.
  12. *
  13. * @returns {React$Element<any>}
  14. */
  15. const SpeakerStats = () => {
  16. const dispatch = useDispatch();
  17. const onSearch = useCallback((criteria = '') => {
  18. dispatch(initSearch(escapeRegexp(criteria)));
  19. }
  20. , [ dispatch ]);
  21. useEffect(() => () => dispatch(resetSearchCriteria()), []);
  22. return (
  23. <JitsiScreen
  24. style = { style.speakerStatsContainer }>
  25. <SpeakerStatsSearch onSearch = { onSearch } />
  26. <SpeakerStatsList />
  27. </JitsiScreen>
  28. );
  29. };
  30. export default SpeakerStats;