Modal
Description
Modal similar to menubar is a component wherein it dictates the title, information, functionality or actions that can be used in a specific widget or page the only difference is that it is a pop up window.
System Dependencies
Installation
The package can be installed via npm:
npm install empower-container --save
Modal Basic Config (Hide MenuBar)
Configuration
import { Modal } from 'empower-container';
..............
let [contentModal, setContentModal] = useState({
show: true,
customClass: "test",
hideMenuBar: true,
config: {
modalSize: 'md'
},
})
/**
*
* getActions - method that gets the value and data of the component
*/
const getActions = (value, data) => {
console.log('VALUE', value, data)
}
..............
return (
<>
<Modal { ...contentModal } getActions={(action, data) => getActions(action, data)}>
<div>
<label>Children here...</label>
</div>
</Modal>
</>
)
Modal Basic Config (Icon)
Configuration
import { Modal } from 'empower-container';
..............
let [contentModal, setContentModal] = useState({
show: true,
config: {
show: true,
icon: SVG_USER,
iconType: ['standard', 'close'],
showInfo: true,
title: 'Displays',
},
info: "Sample information here....",
})
/**
*
* getActions - method that gets the value and data of the component
*/
const getActions = (value, data) => {
console.log('VALUE', value, data)
}
..............
return (
<>
<Modal { ...contentModal } getActions={(action, data) => getActions(action, data)}>
<div>
<label>Children here...</label>
</div>
</Modal>
</>
)
Modal Basic Config (Back Icon)
Configuration
import { Modal } from 'empower-container';
..............
let [contentModal, setContentModal] = useState({
show: true,
config: {
show: true,
icon: SVG_USER,
iconType: ['back', 'close'],
showInfo: true,
title: 'Displays',
},
info: "Sample information here....",
})
/**
*
* getActions - method that gets the value and data of the component
*/
const getActions = (value, data) => {
console.log('VALUE', value, data)
}
..............
return (
<>
<Modal { ...contentModal } getActions={(action, data) => getActions(action, data)}>
<div>
<label>Children here...</label>
</div>
</Modal>
</>
)
Modal Basic Config (Checkbox)
Configuration
import { Modal } from 'empower-container';
..............
let [contentModal, setContentModal] = useState({
show: true,
config: {
show: true,
iconType: ['check', 'close'],
showInfo: false,
title: 'Displays',
},
check: {
disabled: false,
selected: 0,
total: 5
}
})
/**
*
* getActions - method that gets the value and data of the component
*/
const getActions = (value, data) => {
console.log('VALUE', value, data)
}
..............
return (
<>
<Modal { ...contentModal } getActions={(action, data) => getActions(action, data)}>
<div>
<label>Children here...</label>
</div>
</Modal>
</>
)
Modal Basic Config (Checkbox With Selected)
Configuration
import { Modal } from 'empower-container';
..............
let [contentModal, setContentModal] = useState({
show: true,
config: {
show: true,
iconType: ['check', 'close'],
showInfo: true,
title: 'Displays',
},
check: {
disabled: false,
selected: 2,
total: 5
}
})
/**
*
* getActions - method that gets the value and data of the component
*/
const getActions = (value, data) => {
console.log('VALUE', value, data)
}
..............
return (
<>
<Modal { ...contentModal } getActions={(action, data) => getActions(action, data)}>
<div>
<label>Children here...</label>
</div>
</Modal>
</>
)
Modal Basic Config (Checkbox With All Selected)
Configuration
import { Modal } from 'empower-container';
..............
let [contentModal, setContentModal] = useState({
show: true,
config: {
show: true,
iconType: ['check', 'close'],
showInfo: true,
title: 'Displays',
},
check: {
disabled: false,
selected: 5,
total: 5
}
})
/**
*
* getActions - method that gets the value and data of the component
*/
const getActions = (value, data) => {
console.log('VALUE', value, data)
}
..............
return (
<>
<Modal { ...contentModal } getActions={(action, data) => getActions(action, data)}>
<div>
<label>Children here...</label>
</div>
</Modal>
</>
)
Modal Basic Config with Info
Configuration
import { Modal } from 'empower-container';
..............
let [contentModal, setContentModal] = useState({
show: true,
config: {
show: true,
icon: SVG_USER,
iconType: ['standard', 'close'],
showInfo: true,
title: 'Displays',
},
info: "Sample information here..."
})
/**
*
* getActions - method that gets the value and data of the component
*/
const getActions = (value, data) => {
console.log('VALUE', value, data)
}
..............
return (
<>
<Modal { ...contentModal } getActions={(action, data) => getActions(action, data)}>
<div>
<label>Children here...</label>
</div>
</Modal>
</>
)
Modal with Button
Configuration
import { Modal } from 'empower-container';
..............
let [contentModal, setContentModal] = useState({
show: true,
config: {
show: true,
icon: SVG_USER,
iconType: ['standard', 'close'],
showInfo: true,
title: 'Displays',
},
info: "Sample information here....",
button: {
show: true,
actions: [{
class: 'button',
label: "Submit",
action: "readytosubmit", // string optional
icon: SVG_SUBMIT
}]
}
})
/**
*
* getActions - method that gets the value and data of the component
*/
const getActions = (value, data) => {
console.log('VALUE', value, data)
}
..............
return (
<>
<Modal { ...contentModal } getActions={(action, data) => getActions(action, data)}>
<div>
<label>Children here...</label>
</div>
</Modal>
</>
)
Modal with Footer Button
Configuration
import { Modal } from 'empower-container';
..............
let [contentModal, setContentModal] = useState({
show: true,
config: {
show: true,
icon: SVG_USER,
iconType: ['standard', 'close'],
showInfo: true,
title: 'Displays',
},
info: "Sample information here....",
buttonFooter: {
show: true,
actions: [{
class: 'button',
label: "Submit",
action: "footer-submit", // string optional
icon: SVG_SUBMIT,
show: true
}]
}
})
/**
*
* getActions - method that gets the value and data of the component
*/
const getActions = (value, data) => {
console.log('VALUE', value, data)
}
..............
return (
<>
<Modal { ...contentModal } getActions={(action, data) => getActions(action, data)}>
<div>
<label>Children here...</label>
</div>
</Modal>
</>
)
Modal with Dropdown (Monthly Calendar)
Configuration
import { Modal } from 'empower-container';
..............
let [contentModal, setContentModal] = useState({
show: true,
config: {
show: true,
icon: SVG_USER,
iconType: ['standard', 'close'],
showInfo: true,
title: 'Displays',
},
info: "Sample information here....",
dropdown: {
show: true,
title: 'File Test',
type: 'date-picker-monthly',
selection: {
startDate: "Feb 2021",
endDate: "Feb 2021",
},
}
})
/**
*
* getActions - method that gets the value and data of the component
*/
const getActions = (value, data) => {
console.log('VALUE', value, data)
}
..............
return (
<>
<Modal { ...contentModal } getActions={(action, data) => getActions(action, data)}>
<div>
<label>Children here...</label>
</div>
</Modal>
</>
)
Modal with Pagination
Configuration
import { Modal } from 'empower-container';
..............
let [contentModal, setContentModal] = useState({
show: true,
config: {
show: true,
icon: SVG_USER,
iconType: ['standard', 'close'],
showInfo: true,
title: 'Displays',
},
info: "Sample information here....",
pagination: {
show: true,
hideSummary: false,
counter: 10,
perPage: 10,
page: 1,
total: 35,
}
})
/**
*
* getActions - method that gets the value and data of the component
*/
const getActions = (value, data) => {
console.log('VALUE', value, data)
}
..............
return (
<>
<Modal { ...contentModal } getActions={(action, data) => getActions(action, data)}>
<div>
<label>Children here...</label>
</div>
</Modal>
</>
)
Modal with Search
Configuration
import { Modal } from 'empower-container';
..............
let [contentModal, setContentModal] = useState({
show: true,
config: {
show: true,
icon: SVG_USER,
iconType: ['standard', 'close'],
showInfo: true,
title: 'Displays',
},
info: "Sample information here....",
search: {
show: true,
value: ''
}
})
/**
*
* getActions - method that gets the value and data of the component
*/
const getActions = (value, data) => {
console.log('VALUE', value, data)
}
..............
return (
<>
<Modal { ...contentModal } getActions={(action, data) => getActions(action, data)}>
<div>
<label>Children here...</label>
</div>
</Modal>
</>
)
Modal with Pivot
Configuration
import { Modal } from 'empower-container';
..............
let [contentModal, setContentModal] = useState({
show: true,
config: {
show: true,
icon: SVG_USER,
iconType: ['standard', 'close'],
showInfo: true,
title: 'Displays',
},
info: "Sample information here....",
pivot: {
show: true,
selected: 'all',
actions: [
{
label: "All",
value: "all", // string optional
},
{
label: "Pending",
value: "pending", // string optional
},
{
label: "Approved",
value: "approved", // string optional
},
{
label: "Rejected",
value: "rejected", // string optional
},
{
label: "Cancelled",
value: "cancelled", // string optional
},
]
}
})
/**
*
* getActions - method that gets the value and data of the component
*/
const getActions = (value, data) => {
console.log('VALUE', value, data)
}
..............
return (
<>
<Modal { ...contentModal } getActions={(action, data) => getActions(action, data)}>
<div>
<label>Children here...</label>
</div>
</Modal>
</>
)
Modal with Main Button
Configuration
import { Modal } from 'empower-container';
..............
let [contentModal, setContentModal] = useState({
show: true,
config: {
show: true,
icon: SVG_USER,
iconType: ['standard', 'close'],
showInfo: true,
title: 'Displays',
},
info: "Sample information here....",
mainButton: {
show: true,
label: 'File a Request',
icon: SVG_ADD,
actions: [
{
label: "File Leave",
action: "leave", // string optional
icon: SVG_SUBMIT
},
{
label: "File Overtime",
action: "overtime", // string optional
icon: SVG_SUBMIT
},
{
label: "File Toil",
action: "toil", // string optional
icon: SVG_SUBMIT
},
{
label: "File Amendment",
action: "amendment", // string optional
icon: SVG_SUBMIT
}
]
}
})
/**
*
* getActions - method that gets the value and data of the component
*/
const getActions = (value, data) => {
console.log('VALUE', value, data)
}
..............
return (
<>
<Modal { ...contentModal } getActions={(action, data) => getActions(action, data)}>
<div>
<label>Children here...</label>
</div>
</Modal>
</>
)
Properties
Parameter | Data Type | Constraint | Description |
---|---|---|---|
show | Boolean | Required | Determine if the modal will show or not. |
hideMenuBar | Boolean | Optional | Determine if the modal will have an menubar function. |
customClass | String | Optional | Determine if the modal will have an additional custom class. |
config | Object | Required | Display the basic config including icon, title and info. |
info | String | Optional | Display value of the popup information. |
pagination | Object | Optional | Display the pagination feature in the right side of the modal. |
buttonFooter | Object | Optional | Display set of buttons to the bottom of the modal. |
button | Object | Optional | Display set of buttons in the upper left part of the modal. |
search | Object | Optional | Display search bar field. |
pivot | Object | Optional | Display a dropdown at the upper right of the modal. |
check | Object | Optional | It handles the selected and the total value that will response on the display for the main checkbox at the menubar. *Note: check property will not use if the there’s no check value iconType inside the config property. |
mainButton | Object | Optional | Display the main button and display a dropdown if its multiple. |
References
Repository Link: https://gitlab.com/empowerteams/empower-container.git
NPM Package: https://www.npmjs.com/package/empower-container
Demo Repo: git@bitbucket.org:empowerteams/mfe-sub-application-template.git