0.0
The project is in a healthy, maintained state
🎉 Rails Toastify allows you to add notifications to your app with ease. Pay Attention: this gem still is in development. Please CONTRIBUTE
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies
 Project Readme

RailsToastify

Rails Toastify allows you to easily add notifications to your app. Please CONTRIBUTE.

The Rails Toastify gem is completely inspired by the React Toastify lib and is specially made for those React developers who are migrating to Rails thanks to Hotwire or for any other reason, and who love using Toasts and wanted a gem that makes it as easy as it is in React. 🎉

To see the pure html, css and javascript that originated this gem, just access this codepen link.

Installation

Add gem in your Gemfile:

gem 'rails_toastify'

and run bundle install

After run:

rails generate rails_toastify:install

This will create a file config/initializers/rails_toastify.rb where you can define what configuration you want to use:

RailsToastify.setup do |configuration|
  configuration.position = 'toast-container-top-right'
  configuration.notice_animation = 'bounce' # bounce, slide, flip, zoom 
  configuration.alert_animation = 'slide' # bounce, slide, flip, zoom
  configuration.notice_duration = 3000
  configuration.alert_duration = 3000
  configuration.notice_theme = 'light' # light, dark
  configuration.alert_theme = 'light' # light, dark
  configuration.notice_type = 'default' # default, success, warning, error, info
  configuration.alert_type = 'error' # default, success, warning, error, info
end

Usage

In your application.html.erb add in your header:

<%= stylesheet_link_tag 'rails_toastify', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag 'rails_toastify', 'data-turbo-track': 'reload' %>

And in your body:

<%= rails_toastify_container %>
<%= rails_toastify_script %>

And call function RailsToastify.show any javascript or console:

RailsToastify.show('This is a message!', { theme: 'light', type: 'default', animation: 'bounce', duration: 3000 });

To see notice or alert in a toast add this in application.html.erb:

<% if notice %>
  <script>
    RailsToastify.show('<%= notice %>',
      { theme: '<%= RailsToastify.configuration.notice_theme %>',
        type: '<%= RailsToastify.configuration.notice_type %>',
        animation: '<%= RailsToastify.configuration.notice_animation %>',
        duration: <%= RailsToastify.configuration.notice_duration %>
      })
  </script>
<% end %>

<% if alert %>
  <script>
    RailsToastify.show('<%= alert %>',
      { theme: '<%= RailsToastify.configuration.alert_theme %>',
        type: '<%= RailsToastify.configuration.alert_type %>',
        animation: '<%= RailsToastify.configuration.alert_animation %>',
        duration: <%= RailsToastify.configuration.alert_duration %>
      })
  </script>
<% end %>

** Note that toast can be configured for either notice type or alert type. Both types or just one of the types can be used.

Next steps

  • Add tests
  • Add others positions (left, center, bottom)
  • Add fade in and fade out animation
  • In addition to the colors, allow the user to choose any color for the progress bar

Requirements

  • Ruby >= 2.6.0 (recommended 2.7+)
  • Rails >= 6.0 (compatible up to Rails 7)

Contributing to Rails Toastify

Fork, fix, then send a pull request. Bug reports and pull requests are welcome on GitHub at https://github.com/eltonsantos/rails_toastify.

License

This gem is available as open-source under the terms of The MIT License (MIT).

Copyright (c) 2024 Elton Santos. See MIT-LICENSE for further details and see CHANGELOG to see what was changed.