John Cowen 9e715842d9
ui: Improves UI engineering docs (#9875)
Also fixes some typos in with-overlay
2021-03-17 15:58:17 +00:00

32 lines
1.1 KiB
Plaintext

# with-overlay
Our `{{with-overlay}}` modifier is a thin wrapper around the excellent `tippy.js`. The most common usage will be something like the below:
```hbs preview-template
<div
{{did-insert (set this 'popover')}}
>
The popover
</div>
<button
{{with-overlay
this.popover
returns=(set this 'popoverController')
}}
{{on 'click' (fn (optional this.popoverController.show))}}
>
Click me
</button>
```
The first positional parameter is a reference to a DOM element to use for the
popover. The easiest way to provide this is to use `{{did-insert
(set this 'popoverName'}}}` on any DOM element (as seen above). This DOM element is then
automatically removed from the DOM until the popover needs to be shown.
The `returns` named attribute of the modifer allows you to save a reference to
the overlay itself, which is a reference to a [tippy.js instance](https://atomiks.github.io/tippyjs/v5/methods/).
This instance can then be used with conventional ember to control the overlay. In the example above we use `{{on 'click'}}` to show the overlay but once you have a reference to the tippy.js instance you can control it by any other means.