Loading
AMA provides an accessible <Loading ... /> component that auto focuses and announces the accessibility label and busy state. This component wraps the standard React Native ActivityIndicator.
The Loading component by default is absolutely positioned and will fill it's parents container. This behavior can be overridden by the Loading components props. See props section below.
Example
import { Loading } from '@react-native-ama/extras';
const Screen = () => {
const [isLoading, setIsLoading] = React.useState(false);
// fetch data and set loading state while fetching
return (
<View>
<Loading isLoading={isLoading} />
<ScreenContent />
</View>
);
};
Use the Loading component it as a top-level component in your screen while data is being fetched or as a replacement for sections of your screen that are loading to prevent accessibility users from interacting with data that is stale.
Props
If you want to control the position of the loading indicator you can pass a style prop to the Loading component which will add styles to the Loading containers view. Alternatively you can completely override the current containers style by passing a containerProps prop with a style object key-value pair.
Required isLoading
The isLoading state determines if the Loading component is returned and is required for the component to function.
| Type | Default |
|---|---|
| boolean | false |
title
The text used in the accessibilityLabel and also shown below the activity indicator if showTitle is set to true (default).
| Type | Default |
|---|---|
| string | 'Loading' |
showTitle
Whether or not a title text should be shown below the activity indicator.
| Type | Default |
|---|---|
| boolean | true |
style
A prop to add styles to use for the Loading component container view with style merging (style arrays).
| Type | Default |
|---|---|
| ViewStyle | undefined |
Styles already applied to the Loading component container view
Your styles will be merged with these styles:
{
position: 'absolute',
top: 0,
left: 0,
right: 0,
bottom: 0,
justifyContent: 'center',
alignItems: 'center',
zIndex: 100,
}
containerProps
A prop to control any Loading component container view props.
| Type | Default |
|---|---|
| Omit<AutofocusContainerProps, 'children'> | undefined |
The Loading component container is AMA's AutofocusContainer component. The containerProps prop is an object that will be spread onto the AutofocusContainer component.