2017-11-07 23:54:42 +00:00
|
|
|
const html = require('choo/html');
|
2018-02-26 21:49:26 +00:00
|
|
|
const raw = require('choo/html/raw');
|
2018-02-13 19:32:59 +00:00
|
|
|
const assets = require('../../../common/assets');
|
2017-12-05 20:45:36 +00:00
|
|
|
/*
|
|
|
|
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. 🤢
|
|
|
|
*/
|
2018-02-13 19:32:59 +00:00
|
|
|
const version = require('../../../package.json').version || 'VERSION';
|
2018-02-16 20:56:53 +00:00
|
|
|
const browser = browserName();
|
|
|
|
|
|
|
|
module.exports = function(state) {
|
2018-02-26 21:49:26 +00:00
|
|
|
const feedbackUrl = `https://qsurvey.mozilla.com/s3/txp-firefox-send?ver=${version}&browser=${browser}`;
|
2018-02-16 20:56:53 +00:00
|
|
|
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>
|
2018-02-26 21:49:26 +00:00
|
|
|
<a href="${raw(feedbackUrl)}"
|
2018-02-16 20:56:53 +00:00
|
|
|
rel="noreferrer noopener"
|
|
|
|
class="feedback"
|
|
|
|
target="_blank">${state.translate('siteFeedback')}</a>
|
|
|
|
</header>`;
|
|
|
|
};
|
2017-11-07 23:54:42 +00:00
|
|
|
|
2018-01-16 21:21:26 +00:00
|
|
|
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';
|
|
|
|
}
|
|
|
|
}
|