11/* eslint-disable react/jsx-one-expression-per-line */
2+ import { announce } from '@react-aria/live-announcer' ;
23import { Box , Button , Text } from '@sajari/react-components' ;
34import { useAutocomplete , useSearchContext } from '@sajari/react-hooks' ;
45import { escapeHTML , pluralize } from '@sajari/react-sdk-utils' ;
56import * as React from 'react' ;
6- import { LiveMessage } from 'react-aria-live ' ;
7+ import { useEffect } from 'react' ;
78import { useTranslation } from 'react-i18next' ;
89import tw from 'twin.macro' ;
910
@@ -18,28 +19,27 @@ const Summary = (props: SummaryProps) => {
1819 const { completion } = useAutocomplete ( ) ;
1920 const { t } = useTranslation ( [ 'common' , 'summary' ] ) ;
2021
22+ useEffect ( ( ) => {
23+ announce (
24+ query === ''
25+ ? t ( 'summary:noQueryResults' , {
26+ count : totalResults ,
27+ object : pluralize ( totalResults , t ( 'common:item' ) , t ( 'common:items' ) ) ,
28+ } )
29+ : t ( 'summary:results' , {
30+ count : totalResults ,
31+ object : pluralize ( totalResults , t ( 'common:result' ) , t ( 'common:results' ) ) ,
32+ query,
33+ } ) ,
34+ ) ;
35+ } , [ queryValues ?. get ( 'q' ) ] ) ;
36+
2137 if ( ! searched ) {
2238 return null ;
2339 }
2440
2541 return (
2642 < React . Fragment >
27- < LiveMessage
28- message = {
29- query === ''
30- ? t ( 'summary:noQueryResults' , {
31- count : totalResults ,
32- object : pluralize ( totalResults , t ( 'common:item' ) , t ( 'common:items' ) ) ,
33- } )
34- : t ( 'summary:results' , {
35- count : totalResults ,
36- object : pluralize ( totalResults , t ( 'common:result' ) , t ( 'common:results' ) ) ,
37- query,
38- } )
39- }
40- aria-live = "polite"
41- />
42-
4343 < Text { ...rest } disableDefaultStyles = { disableDefaultStyles } >
4444 < Box
4545 as = "span"
0 commit comments