Ensure that the old scratchlanguage cookie is removed if it exists.

On init, remove the old cookie if it exists.
On the project page, make sure `handleSetLanguage` also sets the domain.
This commit is contained in:
Chris Garrity 2020-01-29 16:11:58 -05:00
parent d6149f335c
commit c95d087289
2 changed files with 16 additions and 1 deletions

View file

@ -18,6 +18,17 @@ const jar = require('./lib/jar');
if (['pt', 'pt-pt', 'PT', 'PT-PT'].indexOf(obj) !== -1) {
obj = 'pt-br'; // default Portuguese users to Brazilian Portuguese due to our user base. Added in 2.2.5.
}
} else {
// delete the old cookie (just hostname) by setting it to null and expiring in the past
/* eslint-disable max-len */
document.cookie = `scratchlanguage=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/; domain=${window.location.hostname}`;
/* eslint-enable max-len */
// create the new cookie
let opts = {};
if (window.location.hostname !== 'localhost') {
opts = {domain: `.${window.location.hostname}`};
}
jar.set('scratchlanguage', obj, opts);
}
return obj;
};

View file

@ -626,7 +626,11 @@ class Preview extends React.Component {
);
}
handleSetLanguage (locale) {
jar.set('scratchlanguage', locale);
let opts = {};
if (window.location.hostname !== 'localhost') {
opts = {domain: `.${window.location.hostname}`};
}
jar.set('scratchlanguage', locale, opts);
}
handleUpdateProjectId (projectId, callback) {
this.setState({projectId: projectId}, () => {