render header and footer only once. fixes #788

This commit is contained in:
Danny Coates 2018-03-12 10:15:11 -07:00
parent 94714ecb62
commit 3e6a88d31d
No known key found for this signature in database
GPG Key ID: 4C442633C62E00CB
3 changed files with 52 additions and 36 deletions

View File

@ -110,21 +110,21 @@ export default function(state, emitter) {
}
await delay(1000);
await fadeOut('.page');
openLinksInNewTab(links, false);
emitter.emit('pushState', `/share/${ownedFile.id}`);
} catch (err) {
// eslint-disable-next-line no-console
console.error(err);
if (err.message === '0') {
//cancelled. do nothing
metrics.cancelledUpload({ size, type });
return render();
}
render();
} else {
// eslint-disable-next-line no-console
console.error(err);
state.raven.captureException(err);
metrics.stoppedUpload({ size, type, err });
emitter.emit('pushState', '/error');
}
} finally {
openLinksInNewTab(links, false);
state.uploading = false;
state.transfer = null;
}
@ -188,8 +188,8 @@ export default function(state, emitter) {
if (err.message === '0') {
// download cancelled
state.transfer.reset();
return render();
}
render();
} else {
// eslint-disable-next-line no-console
console.error(err);
state.transfer = null;
@ -199,6 +199,7 @@ export default function(state, emitter) {
metrics.stoppedDownload({ size, err });
}
emitter.emit('pushState', location);
}
} finally {
openLinksInNewTab(links, false);
}

View File

@ -2,7 +2,7 @@ const html = require('choo/html');
const assets = require('../../../common/assets');
module.exports = function(state) {
return html`<footer class="footer">
const footer = html`<footer class="footer">
<div class="legalSection">
<a
href="https://www.mozilla.org"
@ -61,4 +61,11 @@ module.exports = function(state) {
</a>
</div>
</footer>`;
// HACK
// We only want to render this once because we
// toggle the targets of the links with utils/openLinksInNewTab
footer.isSameNode = function(target) {
return target && target.nodeName && target.nodeName === 'FOOTER';
};
return footer;
};

View File

@ -15,7 +15,8 @@ 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">
const header = html`
<header class="header">
<div class="logo">
<a class="logo__link" href="/">
<img
@ -32,7 +33,14 @@ module.exports = function(state) {
rel="noreferrer noopener"
class="feedback"
target="_blank">${state.translate('siteFeedback')}</a>
</header>`;
</header>`;
// HACK
// We only want to render this once because we
// toggle the targets of the links with utils/openLinksInNewTab
header.isSameNode = function(target) {
return target && target.nodeName && target.nodeName === 'HEADER';
};
return header;
};
function browserName() {