@iqorlobanov/react-native-toast
v0.5.1
Published
Animated toast component for React Native.
Downloads
21
Maintainers
Readme
@iqorlobanov/react-native-toast
Animated toast component for React Native.
Documentation
Installation
This component created by using
react-native-reanimated
andreact-native-vector-icons
. Make sure you have installed react-native-reanimated and react-native-vector-icons before start.
yarn add @iqorlobanov/react-native-toast
# or
npm install --save @iqorlobanov/react-native-toast
Usage
Render the ToastComponent in your app's entry file, as the LAST CHILD in the View hierarchy (along with any other components that might be rendered there):
// App.tsx
import { ToastComponent } from '@iqorlobanov/react-native-toast';
export default function App() {
return (
<>
{/* ... */}
<ToastComponent />
</>
);
}
Then use it anywhere in your app (even outside React components), by calling any Toast method directly:
// Foo.tsx
import { Toast, ToastType } from '@iqorlobanov/react-native-toast';
import { Button } from 'react-native';
export function Foo() {
return (
<Button
title="Show toast"
onPress={() => {
Toast.show({
title: 'Lorem Ipsum',
description:
'Lorem Ipsum is simply dummy text of the printing and typesetting industry.',
type: ToastType.SUCCESS,
visibilityTime: 5000,
});
}}
/>
);
}
API
The Toast
API consists of:
- methods that can be called directly on the
Toast
object - props that can be passed to the
ToastComponent
component instance; they act as defaults for all Toasts that are shown
methods
show(options = {})
To show a Toast, call the show()
method andd pass the options
that suit your needs. Everything is optional, unless specified otherwise:
import { Toast } from '@iqorlobanov/react-native-toast';
Toast.show({
title: 'Lorem Ipsum',
description:
'Lorem Ipsum is simply dummy text of the printing and typesetting industry.',
type: ToastType.SUCCESS,
visibilityTime: 5000,
});
The complete set of options is described below:
| option | description | required | type | default value |
| ---------------- | ----------------------------------------------------------------------- | -------- | ----------- | ------------------- |
| type
| Toast type. Available values of: SUCCESS
, INFO
, WARNING
, ERROR
. | true
| ToastType
| ToastType.SUCCESS
|
| title
| First line of text | true
| string
| |
| description
| Second line of text | false
| string
| |
| visibilityTime
| Number of milliseconds after which Toast automatically hides. | false
| number
| 5000
|
| topOffset
| Offset from the top of the screen (in px). Has effect only when | false
| number
| 10
|
| withShadow
| Enable shadow effect | false
| boolean
| true
|
| touchable
| Hide toast on toch | false
| boolean
| true
|
| showLeftIcon
| Show left icon component | false
| boolean
| true
|
| showRightIcon
| Show close icon component | false
| boolean
| true
|
hide()
To hide the current visible Toast, call the hide()
method:
Toast.hide();
props
The following set of props
can be passed to the ToastComponent
component instance to specify certain defaults for all Toasts that are shown:
| prop | description | type | default value |
| -------------------- | --------------------------- | ----------------- | ------------- |
| titleStyle
| Title text style | TextStyle
| |
| descriptionStyle
| Description text style | TextStyle
| |
| style
| Toast view style | ViewStyle
| |
| leftIconComponent
| Custom left icon component | React.ReactNode
| |
| rightIconComponent
| Custom right icon component | React.ReactNode
| |
// App.tsx
import { ToastComponent } from '@iqorlobanov/react-native-toast';
import CustomRightIcon from './CustomRightIcon'
export default function App() {
return (
<>
{/* ... */}
<ToastComponent
titleStyle={{
fontSize: 16,
color: 'black',
}}
descriptionStyle={{
fontSize: 14,
color: 'gray',
}}
rightIconComponent={<CustomRightIcon />}
/>
</>
);
}
License
MIT