Skip to content

Latest commit

 

History

396 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

@zestia/ember-modal-dialog

This addon provides a simple Modal Dialog component.

Installation

ember install @zestia/ember-modal-dialog

Add the following to ~/.npmrc to pull @zestia scoped packages from Github instead of NPM.

@zestia:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=<YOUR_GH_TOKEN>

Demo

https://zestia.github.io/ember-modal-dialog

Features

  • Native modal dialog
  • Focus trap ✔︎
  • Body scroll lock ✔︎
  • Loading state handling ✔︎
  • Optionally escapable ✔︎
  • Easily animatable ✔︎
  • Simple API ✔︎

Notes

  • This addon intentionally does not come with any styles.
  • It is configured with ember-test-waiters so awaiting in your test suite will just work.

Example

The modal dialog component isn't designed to be used on its own, but rather used to compose a new modal dialog component... in this example it's called "user-modal"

{{! user-modal.hbs }}
<ModalDialog @onClose={{@onClose}} @onLoad={{loadUser}} as |modal|>
  Content

  <button {{on 'click' modal.close}}>
    Close
  </button>
</ModalDialog>
{{! application/template.hbs }}
{{#if this.showUserModal}}
  <UserModal @onClose={{this.hideUserModal}} />
{{/if}}

ModalDialog

Arguments

@onReady

Optional. This action receives the API as a parameter, for full control over a modal dialog.

@onLoad

Optional. Fired when a modal is constructed and allows you to return a promise for any data that is required before the modal can display.

@onLoaded

Optional. Fired after the request to load data was successful. Receives the result as a parameter.

@onLoadError

Optional. Fired when the request to load data fails. Receives the error as a parameter.

@onClose

Required. This action fires when close has been called, and any animations have run to hide the modal dialog.

API

close

Call this when you want to close the modal. It will first wait for any animations on the dialog element, and then @onClose will be fired. Allowing you to physically remove the modal from the DOM.

isLoading

Whether the data required for the modal dialog to display is loading.

About

🔲 Animatable modal dialogs for Ember apps

Resources

Contributing

Stars

9 stars

Watchers

16 watching

Forks

Releases

Packages

Used by

Contributors

Languages