ember-semantic-proper-modals

0.2.1 • Public • Published

ember-semantic-proper-modals

An ember mixin providing proper support for Semantic UI modals.

The official ui-modal component does not move the modal DOM element outside of the containing component, thus creating numerous issues with positioning, z-index and usability.
ember-semantic-proper-modals fixes this by providing a mixin that exposes a showModal action and onApproveModal and onDenyModal hooks.

The drawback of this library is that you can only have one modal per component. This can be worked around by dynamically setting the modal's contents as you require.

Installation

ember install ember-semantic-proper-modals

Usage

In your component's template, define the modal like in vanilla semantic ui:

{{!templates/components/modal-component.hbs}}
<button onclick={{action "showModal"}}>Show modal</button>
 
<div class="ui modal">
  <i class="close icon"></i>
  <div class="header">
    Example modal
  </div>
  <div class="content">
    Do you really want to perform this action?
  </div>
  <div class="actions">
    <div class="ui secondary deny button">
      Cancel
    </div>
    <div class="ui negative ok button">
      Delete
    </div>
  </div>
</div>

Make sure to only include a single element with the ui modal class.
The showModal action opens the modal.

In your component, include the SemanticModalMixin and override the onApproveModal and onDenyModal functions if needed:

// components/modal-component.js
import Ember from 'ember';
import SemanticModalMixin from 'ember-semantic-proper-modals/mixins/semantic-modal-mixin';
 
export default Ember.Component.extend(SemanticModalMixin, {
  
  onApproveModal() {
    console.log('ok button pressed');
  },
  
  onDenyModal() {
    console.log('deny button pressed');
  }
  
});

Notes

You can access the jQuery DOM element for the modal using this.get('modal') and invoke semantic ui behaviours etc. on it.

You can also programatically show the modal by calling this.showModal().

Dependents (0)

Package Sidebar

Install

npm i ember-semantic-proper-modals

Weekly Downloads

1

Version

0.2.1

License

MIT

Last publish

Collaborators

  • crushedpixel