React Native Push Down Alert
A customizable pushdown alert component for React Native applications. It provides a simple way to display success, error, and warning notifications with a unique pushdown animation that pushes down the entire content of app to show the notification.

Features
- Display success, error, and warning notifications.
- Customizable alert appearance and behavior.
- Queue or cancel current alerts based on configuration.
- Supports custom icons and styles.
Installation
To install the library, use npm or yarn:
npm install react-native-pushdown-alert
# or
yarn add react-native-pushdown-alert
Usage
Here's a basic example of how to use the react-native-pushdown-alert in your application:
import { PushDownAlertPortal, showNotification} from 'react-native-pushdown-alert';
import { View, Button } from 'react-native';
const MyApp = () => {
  return (
    <View>
      <Button
        title="Show Notification Success"
        onPress={() => {
          showNotification({
            type: 'success',
            message: 'Hi a message body',
            title: 'Hello World',
          });
        }}
      />
    </View>
  );
};
const config = {}
const App = () => {
  return (
    <PushDownAlertPortal config={config}>
      <MyApp />
    </PushDownAlertPortal>
  );
};
Step-by-Step Guide
- 
Import the Components : Import PushDownAlertPortal and showNotification from the library. import { PushDownAlertPortal } from 'react-native-pushdown-alert';
- 
Place the Portal : Place the PushDownAlertPortal component as high as possible in your component tree. This ensures that alerts can be displayed over all other components. const App = () => {
 return (
 <PushDownAlertPortal config={config}>
 {...rest of your app}
 </PushDownAlertPortal>
 );
 };
- 
Trigger Notifications : Use the showNotification function anywhere in your app to trigger alerts. You can call this function in response to events, such as button presses or API responses. 
If a notification is already showing, subsequent showNotification calls will be queued based your chosen queuing behavior.
showNotification({
  type: 'success',
  message: 'Hi a message body',
  title: 'Hello World',
});
API
showNotification
- Parameters :
- type: Type of the alert (- success,- error,- warning).
- title: Title of the alert.
- message: Message body of the alert.
 
PushDownAlertPortal
- Props :
- config: Configuration object for customizing alert behavior and appearance.
 
Configuration
You can customize the alert behavior and appearance by passing a configuration object to the PushDownAlertPortal component. Here are some of the available options:
- alertDisplayDuration: Duration for which the alert is displayed.
- openAnimationDuration: Duration of the open animation.
- closeAnimationDuration: Duration of the close animation.
- alertQueueBehaviour: Determines how alerts are handled when a notification is already showing. Options include:- queue: New alerts are added to a queue and displayed sequentially.
- cancelCurrent: The current alert is dismissed, and the new alert is displayed immediately.
 
- titleTextStyle: Custom style for the alert title.
- messageTextStyle: Custom style for the alert message.
- successConfig,- errorConfig,- warningConfig: Custom configurations for each alert type, including icons and background colors.
Sample Configuration
Here's an example of how you can customize the alert configurations:
const config = {
  alertDisplayDuration: 4000,
  openAnimationDuration: 500,
  closeAnimationDuration: 500,
  alertQueueBehaviour: 'queue',
  titleTextStyle: { fontSize: 18, fontWeight: 'bold', color: '#fff' },
  messageTextStyle: { fontSize: 16, color: '#fff' },
  successConfig: {
    icon: <CustomSuccessIcon />, // Replace with your custom icon component
    backgroundColor: '#4CAF50', // Green background for success alerts
  },
  errorConfig: {
    icon: <CustomErrorIcon />, // Replace with your custom icon component
    backgroundColor: '#F44336', // Red background for error alerts
  },
  warningConfig: {
    icon: <CustomWarningIcon />, // Replace with your custom icon component
    backgroundColor: '#FFC107', // Yellow background for warning alerts
  },
};
Contributing
See the contributing guide to learn how to contribute to the repository and the development workflow.
License
MIT