DEV Community

Cover image for ๐ŸŽ‰ Announcing Angular Hot Toast โ€” The Best Angular Toast in Town
Dharmen Shah
Dharmen Shah

Posted on

๐ŸŽ‰ Announcing Angular Hot Toast โ€” The Best Angular Toast in Town

A few weeks ago Netanel Basal came up with an idea to create react-hot-toast like library for Angular community.

And I am really glad that we ended up creating the best Angular toast in town, announcing...

# ๐ŸŽ‰ Angular Hot Toast โ€” The Best Angular Toast in Town

header 2 (4).gif

Getting Started

You can install it through Angular CLI:

ng add @ngneat/hot-toast
Enter fullscreen mode Exit fullscreen mode

or with npm:

npm install @ngneat/overview @ngneat/hot-toast
Enter fullscreen mode Exit fullscreen mode

When you install using npm or yarn, you will also need to import HotToastModule in your app.module. You can also set global toast options (Partial<ToastConfig>) here.:

import { HotToastModule } from '@ngneat/hot-toast';

@NgModule({
  imports: [HotToastModule.forRoot()],
})
class AppModule {}
Enter fullscreen mode Exit fullscreen mode

Features

  • ๐Ÿ”ฅ Hot by default
  • โ˜• Easy to use
  • ๐Ÿ Snackbar variation
  • โ™ฟ Accessible
  • ๐Ÿ–๏ธ Reduce motion support
  • ๐Ÿ˜Š Emoji Support
  • ๐Ÿ›  Customizable
  • โณ Observable API
  • โœ‹ Pause on hover
  • ๐Ÿ” Events
  • ๐Ÿ”’ Persistent

Here are some basic examples:

import { HotToastService } from '@ngneat/hot-toast';

@Component({})
export class AppComponent {
  constructor(private toast: HotToastService) {}

  showToast() {
    this.toast.show('๐Ÿ‘‹ Hello World!');
    this.toast.success('๐Ÿ‘ Yeah!!');
    this.toast.warning('๐Ÿง Boo!');
    this.toast.error('๐Ÿ˜ญ Oh no!');
  }
}
Enter fullscreen mode Exit fullscreen mode

A common task is to show a success or error toasts based on the server response. To make your life easier, we created a custom operator that will do the work for you:

import { HotToastService } from '@ngneat/hot-toast';

@Component({})
export class AppComponent {
  constructor(private toast: HotToastService, 
              private usersService: UsersService) {}

  update() {
    this.usersService.updateUser().pipe(
      this.toast.observe({
         loading: 'Updating...',
         success: '๐Ÿš€',
         error: '๐Ÿ˜ก'
      })
    ).subcribe()
  }
}
Enter fullscreen mode Exit fullscreen mode

Checkout more examples at: https://ngneat.github.io/hot-toast/

Repo

GitHub logo ngneat / hot-toast

๐Ÿž Smoking hot Notifications for Angular. Lightweight, customizable and beautiful by default.


npm MIT commitizen PRs styled with prettier styled with prettier All Contributors ngneat cypress semantic-release

Smoking hot Notifications for Angular. Lightweight, customizable and beautiful by default. Inspired from react-hot-toast

Compatibility with Angular Versions

@ngneat/hot-toast Angular
3.x >= 9.1.13 < 13
4.x >= 13

Features

  • ๐Ÿ”ฅ Hot by default
  • โ˜• Easy to use
  • ๐Ÿ Snackbar variation
  • โ™ฟ Accessible
  • ๐Ÿ–๏ธ Reduce motion support
  • ๐Ÿ˜Š Emoji Support
  • ๐Ÿ›  Customizable
  • โณ Observable API
  • โœ‹ Pause on hover
  • ๐Ÿ” Events
  • ๐Ÿ”’ Persistent

Installation

You can install it through Angular CLI:

ng add @ngneat/hot-toast
Enter fullscreen mode Exit fullscreen mode

or with npm:

# For Angular version >= 9.1.13 < 13
npm install @ngneat/overview@2.0.2 @ngneat/hot-toast@3
# For Angular version >=13
npm install @ngneat/overview@3.0.0 @ngneat/hot-toast@4
Enter fullscreen mode Exit fullscreen mode

When you install using npm or yarn, you will also need to import HotToastModule in your app.module. You can also set global toast options (Partial<ToastConfig>) here.:

import { HotToastModule } from '@ngneat/hot-toast';
@NgModule({
  imports: [HotToastModule.forRoot()],
โ€ฆ
Enter fullscreen mode Exit fullscreen mode

Do checkout the library and let us know your feedback. You can reach-out to me at @shhdharmen.

Happy Coding

๐ŸŒฒ ๐ŸŒž ๐Ÿ˜Š

Top comments (2)

Collapse
 
yooooohetosk1 profile image
Het

dude i have a question i am using toast by using the this.toast.observe method and the toast are displaying successfully but the problem is they are staying there permanently how do i make them move away

Collapse
 
sebastiandg7 profile image
Sebastiรกn Duque G

This is great!!!