* The header of the overlay. * @param {Document} document * @param {HTMLElement} root * @param {PageHeaderProps} props * @returns {void}
(document, root, props)
| 16 | * @returns {void} |
| 17 | */ |
| 18 | function PageHeader(document, root, props) { |
| 19 | const pageHeaderContainer = document.createElement('div'); |
| 20 | pageHeaderContainer.style.background = theme['dark-background']; |
| 21 | pageHeaderContainer.style.boxShadow = '0 1px 4px rgba(0, 0, 0, 0.3)'; |
| 22 | pageHeaderContainer.style.color = theme.white; |
| 23 | pageHeaderContainer.style.left = '0'; |
| 24 | pageHeaderContainer.style.right = '0'; |
| 25 | pageHeaderContainer.style.padding = '1rem 1.5rem'; |
| 26 | pageHeaderContainer.style.paddingLeft = 'max(1.5rem, env(safe-area-inset-left))'; |
| 27 | pageHeaderContainer.style.paddingRight = 'max(1.5rem, env(safe-area-inset-right))'; |
| 28 | pageHeaderContainer.style.position = 'fixed'; |
| 29 | pageHeaderContainer.style.top = props.topOffset || '0'; |
| 30 | |
| 31 | const title = document.createElement('h3'); |
| 32 | title.innerText = props.title; |
| 33 | title.style.color = theme.red; |
| 34 | title.style.fontSize = '1.125rem'; |
| 35 | title.style.lineHeight = '1.3'; |
| 36 | title.style.margin = '0'; |
| 37 | pageHeaderContainer.appendChild(title); |
| 38 | |
| 39 | if (props.message) { |
| 40 | title.style.margin = '0 0 0.5rem'; |
| 41 | |
| 42 | const message = document.createElement('span'); |
| 43 | message.innerText = props.message; |
| 44 | message.style.color = theme.white; |
| 45 | message.style.wordBreak = 'break-word'; |
| 46 | pageHeaderContainer.appendChild(message); |
| 47 | } |
| 48 | |
| 49 | root.appendChild(pageHeaderContainer); |
| 50 | |
| 51 | // This has to run after appending elements to root |
| 52 | // because we need to actual mounted height. |
| 53 | Spacer(document, root, { |
| 54 | space: pageHeaderContainer.offsetHeight.toString(10), |
| 55 | }); |
| 56 | } |
| 57 | |
| 58 | module.exports = PageHeader; |
no test coverage detected
searching dependent graphs…