Table of content:
Notifications components library for Yew. It's like react-toastify but for yew and more simpler (so far 😏).
Documentation: https://yn-docs.qkation.com/yew_notifications/index.html
Where it already used?
I was writing my personal project crypto-helper some time ago. I was forced to write awful code to add some notifications functionality to my web app. So, I decided to write this library that allows the easy showing of notifications to users.
Inspired by yew-toastrack
: https://github.com/kinnison/linkdoku/tree/main/yew-toastrack .
- Decide which notification components to use.
yew-notifications
already has implemented standard notifications but you can write your own. Seebasic
andcustom
examples for more information.
# Cargo.toml
# if you want to use standard notification components
yew-notifications = { git = "https://github.com/TheBestTvarynka/yew-notifications.git", features = ["standard-notification"] }
# if you decide to write and use custom notification components
yew-notifications = { git = "https://github.com/TheBestTvarynka/yew-notifications.git" }
- Include
yew-notification
styles into your project:
<link data-trunk rel="sass" href="https://raw.githubusercontent.com/TheBestTvarynka/yew-notifications/main/static/notifications_provider.scss" />
This one below is needed only when you decide to use components from the yew-notifications
:
<link data-trunk rel="sass" href="https://raw.githubusercontent.com/TheBestTvarynka/yew-notifications/main/static/notification.scss" />
Or you can copy scss file into your project and specify the path to it instead of the link. At this point, the scss file is one possible way to import styles.
- Wrap needed components into
NotificationProvider
:
// Notification, NotificationFactory - your notification types.
// They can be imported from this library or written by yourself (see `custom` example).
// component_creator is an instance of the NotificationFactory
<NotificationsProvider<Notification, NotificationFactory> {component_creator}>
// some inner components
</NotificationsProvider<Notification, NotificationFactory>>
- Spawn notifications:
use yew_notifications::use_notification;
// Notification - your notification type.
// It can be imported from this library or written by yourself (see `custom` example).
let notifications_manager = use_notification::<Notification>();
notifications_manager.spawn(Notification::new(...));
See the examples
directory for the code examples.
At this point, this library has minimal functionality implemented. I plan to improve it continuously according to my needs. If you have any feature requests, then create an issue with the description. It'll be a priority for me.
Pavlo Myroniuk - the.best.tvarynka@gmail.com.
Distributed under the MIT license.
Feel free to contribute.
- Fork it (https://github.com/TheBestTvarynka/yew-notifications/fork)
- Create your feature branch (
git checkout -b feature/fooBar
) - Commit your changes (
git commit -am 'Add some fooBar'
) - Push to the branch (
git push origin feature/fooBar
) - Create a new Pull Request