svelte-promise-modal
Yeah you've seen lots of modals. But have you seen a modal that returns a promise?
Installation
npm i -D svelte-promise-modal
How to
Import as shown below
Create references to each components as shown below
let _modal;let _alertmodal;let _askmodal;
Hi! I'm a Modal! ok Hi! I'm an Ask Modal! I resolve when you press confirm { datastore.set({ text: e.target.value }); }} /> cancel confirm
Open them using corresponding methods.
AlertModal and AskModal will return a promise that is fulfilled once confirm
is called.
Open Modal { _alertmodal.alert(`Hi! I'm an Alert Modal!`); }}> Open Alert Modal { try { const data = await _askmodal.ask({ text: 'test' }); setTimeout(() => { alert(`You typed: ${data.text}`); }, 500); } catch (e) { setTimeout(() => { alert(`You closed the ask modal without confirmation!`); }, 500); } }}> Open Ask Modal
AskModal datastore
AskModal's ask
method expects an object as its first argment. This is the default data that will be stored in the datastore
store.
Declaring let:datastore
in the AskModal component will provide a way for its inner contents to communiate with the datastore. datastore
is a svelte store, so you should use the get
function exported from svelte/store
in order to access the default values and the set
function to edit its values. See example folder for detailed usage.
License
MIT