useDynamicList
This hook can be used to automatically announce the number of items found when a list gets filtered.
Usage
import {useDynamicList} from 'react-native-ama';
const {rowsCount, columnsCount} = useDynamicList({
data,
pluralMessage: accessibilityPluralMessage,
singularMessage: accessibilitySingularMessage,
numColumns: 1,
isPlural,
});
Parameters
Required data
The list data.
Required singularMessage
Is the message to announce when the list renders one1 item 2. The string %count%* will be replaced with the actual number of items rendered at the moment.
Required pluralMessage
Is the message to announce when the list renders zero or multiple1 items 2 The string %count%* will be replaced with the actual number of items rendered at the moment.
isPlural
By default, the hook considers the number 1 as singular and any other as plural. Although this works fine with English, it might not be the case for other languages. For this reason, it allows specifying a custom function that should return true if the accessibilityPluralMessage should be used; otherwise, false.
Example:
import { DynamicFlatList } from 'react-native-ama';
<DynamicFlatList
data={items}
renderItem={renderItem}
keyExtractor={item => item.id}
listType="dynamic"
singularMessage="%count% item found"
pluralMessage="%count% items found"
isPlural={customIsPLural}
/>;
const customIsPLural = () => {
return Math.random() > 0.5;
};
rowsCount
The number of rows of the list/grid. If empty, the length of the data is used to calculate it and divided by numColumns.
| Type | Default |
|---|---|
| number | undefined |
note
When passing rowsCount, it is used as it is and is assumed that the number of columns has been taken into account.
numColumns
The number of columns of the list.
| Type | Default |
|---|---|
| number | undefined |