@ttoss/react-notifications v1.19.5
@ttoss/react-notifications
About
This module provides a simple way to show notifications in your application using ttoss ecosystem.
Installation
pnpm add @ttoss/notifications @ttoss/components @ttoss/react-icons @ttoss/ui @emotion/reactGetting Started
Provider
Add a provider on top of your application and set Modal app element.
import { NotificationsProvider } from '@ttoss/react-notifications';
import { ThemeProvider } from "@ttoss/ui";
import { Modal } from "@ttoss/components";
ReactDOM.render(
<React.StrictMode>
<ThemeProvider>
<NotificationsProvider>
<App />
</NotificationsProvider>
</ThemeProvider>
</React.StrictMode>,
document.getElementById('root')
Modal.setAppElement('#root');Loading
This modules provides a global loading bar that you can use on every part of your App.
import { useNotifications } from '@ttoss/react-notifications';
import { Box, Button } from '@ttoss/ui';
const Component = () => {
const { loading, setLoading } = useNotifications();
return (
<Box>
<Button onClick={() => setLoading(true)} disabled={isLoading}>
Click Me!
</Button>
</Box>
);
};Modal
Set viewType to modal to show a modal notification.
import { useNotifications } from '@ttoss/react-notifications';
import { Box, Button } from '@ttoss/ui';
const Component = () => {
const { addNotification } = useNotifications();
return (
<Box>
<Button
onClick={() =>
addNotification({
message: "I'm a notification",
type: 'info',
viewType: 'modal',
})
}
>
Click Me!
</Button>
</Box>
);
};Toast
Set viewType to toast to show a toast notification.
import { useNotifications } from '@ttoss/react-notifications';
import { Box, Button } from '@ttoss/ui';
const Component = () => {
const { addNotification } = useNotifications();
return (
<Box>
<Button
onClick={() =>
addNotification({
message: "I'm a notification",
type: 'info',
viewType: 'toast',
})
}
>
Click Me!
</Button>
</Box>
);
};NotificationsBox
You can use NotificationsBox to show the notifications in a specific place. You can render as many NotificationsBox as you want in your application.
import { NotificationsBox } from '@ttoss/react-notifications';
import { Box } from '@ttoss/ui';
const Component = () => {
return (
<Box>
<NotificationsBox />
</Box>
);
};
const App = () => {
return (
<Box>
<NotificationsBox />
<Component />
</Box>
);
};In the example above, both NotificationsBox will show the notifications.
To render the notifications in a specific NotificationsBox, you can set the boxId in the notification, which is the id of the NotificationsBox you want to show the notification.
import { useNotifications, NotificationsBox } from '@ttoss/react-notifications';
import { Box, Button } from '@ttoss/ui';
const Component = () => {
const { addNotification , NotificationsBox } = useNotifications();
return (
<Box>
<NotificationsBox id="my-box" />
<Button
onClick={() =>
addNotification({
message: "I'm a notification",
type: 'info',,
boxId: 'my-box',
})
}
>
Click Me!
</Button>
</Box>
);
};Recommendation
"You can place the NotificationsBox component at the root of your application to handle notifications rendering automatically, eliminating the need to manage it manually elsewhere. If you need a specific NotificationsBox, simply render the NotificationsBox in the desired location and use the boxId property to differentiate it."
License
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago