@dwmt/modalis
v2.1.0
Published
A very powerful modal system for Vue
Downloads
36
Readme
Modalis
We should have a nice description, but we are lazy.. 🤷♂️
Table of contents
Installation
Npm:
npm i @dwmt/modalis
Yarn:
yarn add @dwmt/modalis
Pnpm:
pnpm i @dwmt/modalis
Preparation
We will need to create a ModalisContext
because each open modal will be registered in that context. We have two possible options for you:
- The Provider component way (Recommended)
- The Vue plugin way
The Provider component way (Recommended)
First, you have to wrap your application with the ModalisProvider
component, which will give you the possibility to use Modalis within your components. ModalisProvider
does two things:
- It creates a context, so you can access that context anywhere in your application
- It renders the open modals and teleports them into the body
To achieve that, you only need to import ModalisProvider
and wrap your app with it.
App.vue:
<template>
<ModalisProvider>
<router-view></router-view>
</ModalisProvider>
</template>
<script lang="ts" setup>
import { ModalisProvider } from '@dwmt/modalis'
</script>
With that, every single component inside ModalisProvider
can open up a modal.
Attention! Only
ModalisProvider
's children can access modalis. If you try to open a modal in a component, which is not the descendant ofModalisProvider
, your code will fail!
The Vue plugin way
The old way to register Modalis is to install it with Vue's plugin system.
import { createApp } from 'vue'
import { createContext } from '@dwmt/modalis'
import App from './App.vue'
const modalisContext = createContext()
createApp(App).use(modalisContext).mount('#app')
With that approach, your entire application can access the Modalis context.
You also need to render the modals, so you will need the ModalView
too.
<template>
<div>
<router-view></router-view>
<ModalisView />
</div>
</template>
<script lang="ts" setup>
import { ModalisView } from '@dwmt/modalis'
</script>
Modals
Cool! 🎉 You are all set. Now you can create and show modals. But... how?
Let us show you!
Creating a modal configuration
The first step on the path of the modals is the createModal
function. With that function, you can create a configuration object, which will represent how your newly created modal will behave.
The createModal
function has two generic types:
- DataType
- ReturnType
By default both the DataType
and ReturnType
are void
. That means, you can call your modal without parameters, and it won't return any value.