const html = require('choo/html'); const assets = require('../../../common/assets'); /* The current weback config uses package.json to generate version.json for /__version__ meaning `require` returns the string 'version.json' in the frontend context but the json on the server. We want `version` to be constant at build time so this file has a custom loader (/build/version_loader.js) just to replace string with the value from package.json. 🤢 */ const version = require('../../../package.json').version || 'VERSION'; const browser = browserName(); module.exports = function(state) { const feedbackUrl = `https://qsurvey.mozilla.com/s3/txp-firefox-send?ver=${version}&browser=${browser}`; return html`<header class="header"> <div class="logo"> <a class="logo__link" href="/"> <img src="${assets.get('send_logo.svg')}" alt="Send"/> <h1 class="logo__title">Send</h1> </a> <div class="logo__subtitle"> <a class="logo__subtitle-link" href="https://testpilot.firefox.com">Firefox Test Pilot</a> <div>${state.translate('siteSubtitle')}</div> </div> </div> <a href="${feedbackUrl}" rel="noreferrer noopener" class="feedback" target="_blank">${state.translate('siteFeedback')}</a> </header>`; }; function browserName() { try { if (/firefox/i.test(navigator.userAgent)) { return 'firefox'; } if (/edge/i.test(navigator.userAgent)) { return 'edge'; } if (/trident/i.test(navigator.userAgent)) { return 'ie'; } if (/chrome/i.test(navigator.userAgent)) { return 'chrome'; } if (/safari/i.test(navigator.userAgent)) { return 'safari'; } return 'other'; } catch (e) { return 'unknown'; } }