Skip to content

Commit 0156694

Browse files
feat(a11y): spotlight announcement (#6795)
* feat: spotilight improvement and a11y announcement * feat: new translation fields * feat: improve announcement * fix: nn translation Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * fix: translation * rollback search * rollback search --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
1 parent de3e696 commit 0156694

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

app/views/RoomsListView/hooks/useSearch.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
import { useCallback, useReducer } from 'react';
2+
import { AccessibilityInfo } from 'react-native';
23

34
import { type IRoomItem } from '../../../containers/RoomItem/interfaces';
45
import { search as searchLib } from '../../../lib/methods/search';
56
import { useDebounce } from '../../../lib/methods/helpers/debounce';
7+
import i18n from '../../../i18n';
68

79
interface SearchState {
810
searchEnabled: boolean;
@@ -58,11 +60,22 @@ export const useSearch = () => {
5860

5961
const [state, dispatch] = useReducer(searchReducer, initialState);
6062

63+
const announceSearchResultsForAccessibility = (count: number) => {
64+
if (count < 1) {
65+
AccessibilityInfo.announceForAccessibility(i18n.t('No_results_found'));
66+
return;
67+
}
68+
69+
const message = count === 1 ? i18n.t('One_result_found') : i18n.t('Search_Results_found', { count });
70+
AccessibilityInfo.announceForAccessibility(message);
71+
};
72+
6173
const search = useDebounce(async (text: string) => {
6274
if (!state.searchEnabled) return;
6375
dispatch({ type: 'SET_SEARCHING' });
6476
const result = await searchLib({ text });
6577
dispatch({ type: 'SEARCH_SUCCESS', payload: result as IRoomItem[] });
78+
announceSearchResultsForAccessibility(result.length);
6679
}, 500);
6780

6881
const startSearch = useCallback(() => {

0 commit comments

Comments
 (0)