layerpro
v1.2.3
Published
Custom modals, alert, confirm, prompt... by Dario Passariello
Maintainers
Readme
LayerPro
About
LayerPro offers a completely new way to customize web modals in your application. With LayerPro, you can create custom alerts, prompts, confirmations, and messages, effectively replacing the default browser modals.
Live demo
You can view an HTML version demonstrating how dpHelper and LayerPro work together. These tools can be used with HTML, React, Vue, or any other frontend framework/library.
Install for react + webpack projects
npm i layerpro --save-devor update:
npm i layerpro@latest --save-devin the index (and only there):
import "layerpro";or
require("layerpro");Install for ejs or other type of projects (like html)
<script src="https://cdn.jsdelivr.net/npm/layerpro"></script>How to use it
ype layerpro in your console to explore all the available tools you can use globally! You can call these tools from anywhere without needing to import them (just include the import once in your index file).
For example, if you type alert("hello, world!"), you can see the result.
You can also use these tools as messages directly from the console.
alert("Hello world"); // Normal alert
prompt("Your Name"); // Ask for input
confirm(
"Hello world",
()=>console.log("hello"), // callback for YES / OK
()=>console.log("bye") // callback for NO / CANCEL (you can use null if you don't want CB)
);
message(
"Hello world",
()=>console.log("This happen after OK") // callback for YES / OK)
);Example:
import 'layerpro'
// EXAMPLE WITH ALL OPTIONS
function App() {
layerpro.popup.open(
{
id: 'exampleModal',
body: 'Example',
name: 'example',
icon: '⚠',
buttons: {
confirm: {
text: "accept",
cb: (e) => message("confirmed")
},
cancel: {
text: "cancel"
}
},
width: 400,
height: 300,
maxWidth: 500,
maxHeight: 350,
minWidth: 200,
minHeight: 150,
top: '10%',
left: '10%',
right: 'auto',
bottom: 'auto',
fadeIn: 500,
fadeOut: 500,
timer: 0,
iconize: true,
maximize: true,
close: true,
isMaximize: false,
dockable: false,
raised: true,
movable: true,
resizable: false,
store: false
}
)
}
export default App
Example with a React component:
// Example using React Component
import React from "react"
import 'layerpro'
export default () => {
// Custom Component6
const TestApp = () => {
return (
<div>
Hello
<label>
Alert: <input type="button" value="Alert" onClick={() => alert("Hello")} />
</label>
</div>
)
}
// Run into layerpro
layerpro.popup.open(
{
id: 'exampleModal',
body: TestApp(),
buttons: {
confirm: {
text: "accept",
cb: () => {
message("confirmed")
}
},
cancel: {
text: "cancel",
cb: () => {
alert("cancelled")
}
}
},
width: 350,
height: 300,
name: 'example',
icon: '⚠',
iconize: true,
maximize: true,
close: true,
isMaximize: false,
dockable: false,
raised: true,
movable: true,
resizable: false,
store: false,
top: '10%',
left: '10%',
right: 'auto',
bottom: 'auto',
minWidth: 200,
minHeight: 150,
fadeIn: 500,
fadeOut: 500,
timer: 0
}
)
}copyright (c) 2019 - 2025 by Dario Passariello
