@ttoss/react-notifications v2.1.16
@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/react
Getting 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
4 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
6 months ago
6 months ago
6 months ago
5 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
7 months ago
7 months ago
8 months ago
8 months ago
9 months ago
10 months ago
10 months ago
10 months ago
11 months ago
11 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
11 months ago
11 months ago
11 months 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
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
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
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
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