Extend messageBox to set onclick handler on buttons
This commit is contained in:
		
							parent
							
								
									8607d779f9
								
							
						
					
					
						commit
						dfb7ac9b44
					
				|  | @ -4,7 +4,7 @@ function messageBox({ | |||
|   title,          // [mandatory] string
 | ||||
|   contents,       // [mandatory] 1) DOM element 2) string
 | ||||
|   className = '', // string, CSS class name of the message box element
 | ||||
|   buttons = [],   // array of strings used as labels
 | ||||
|   buttons = [],   // array of strings or objects like {textContent[string], onclick[function]}.
 | ||||
|   onshow,         // function(messageboxElement) invoked after the messagebox is shown
 | ||||
|   blockScroll,    // boolean, blocks the page scroll
 | ||||
| }) {              // RETURNS: Promise resolved to {button[number], enter[boolean], esc[boolean]}
 | ||||
|  | @ -67,14 +67,21 @@ function messageBox({ | |||
|           onclick: messageBox.listeners.closeIcon}), | ||||
|         $element({id: `${id}-contents`, appendChild: tHTML(contents)}), | ||||
|         $element({id: `${id}-buttons`, appendChild: | ||||
|           buttons.map((textContent, buttonIndex) => textContent && | ||||
|             $element({ | ||||
|           buttons.map((textContent, buttonIndex) => { | ||||
|             if (!textContent) { | ||||
|               return; | ||||
|             } | ||||
|             let onclick = messageBox.listeners.button; | ||||
|             if (typeof textContent === 'object') { | ||||
|               ({onclick = onclick, textContent} = textContent); | ||||
|             } | ||||
|             return $element({ | ||||
|               tag: 'button', | ||||
|               buttonIndex, | ||||
|               textContent, | ||||
|               onclick: messageBox.listeners.button, | ||||
|             }) | ||||
|           ) | ||||
|               onclick, | ||||
|             }); | ||||
|           }) | ||||
|         }), | ||||
|       ]}), | ||||
|     ]}); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user