import * as m from 'mithril' ; import state from '../state/state' ; import { BinaryModalAttributes } from '../state/uiState' ; returns function BinaryModal ( ) { function getBinaryModalMarkup ( attrs ) { return m ( 'div' , { style : { background : '#dddddd' , padding : '10px' , border : '2px solid blue' , fontSize : `${ state . ui . getCurrentFontSize ( ) }px` , position : 'fixed' , left : '50%' , top : '35%' , transform : 'translate(-50%, -50%)' , zIndex : '20' , } , } , [ attrs . prompt , getButtonsMarkup ( attrs ) , ] ) ; } function getButtonsMarkup ( attrs ) { return m ( 'div' , { style : { marginTop : '20px' , textAlign : 'right' , } , } , [ m ( 'button' , { style : 'margin-right: 10px' , onclick : attrs . onYesButtonClick , } , attrs . yesButtonText ) , m ( 'button' , { onclick : attrs . onNoButtonClick } , attrs . noButtonText ) , ] ) ; } function getOverlayMarkup ( ) { return m ( 'div' , { style : { position : 'fixed' , top : '0px' , width : '100%' , height : '100vh' , background : 'rgba(255, 255, 255, 0.5)' , zIndex : '10' , } , } ) ; } return { view : ( { attrs } ) : m . Vnode => m ( 'div' , [ getOverlayMarkup ( ) , getBinaryModalMarkup ( attrs ) , ] ) , } ; } export default BinaryModal ;