diff --git a/website/package-lock.json b/website/package-lock.json index bc7e2ff233afc6c933f65f9cbbb49d5a5babdaed..d89a97606988d27e36c61cc7fd6d098bb1bbf30a 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "ks-cheap-translator": "^0.1.0", "mentalo-engine": "^0.2.2", - "object-to-html-renderer": "^1.1.1" + "object-to-html-renderer": "^1.3.0" }, "devDependencies": { "sass": "^1.32.0", @@ -1295,9 +1295,9 @@ } }, "node_modules/object-to-html-renderer": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/object-to-html-renderer/-/object-to-html-renderer-1.1.3.tgz", - "integrity": "sha512-OWZd0lRBOQylycJEuFf9CfeYEOsylU5CUf44yFWN6JEE3MpVts1nSwLCIQpUCcASwHJ0qa33DpI3eNLwcXiDWA==" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object-to-html-renderer/-/object-to-html-renderer-1.3.0.tgz", + "integrity": "sha512-42I80O1u5VWJI1lLFt8XH2ig2sUwWuR8Mv1W6+7Fb4CJ8PF+TWfxDNd6e6XzfTGQPVDKuyrDl/V04QHi5Yfrgg==" }, "node_modules/object.assign": { "version": "4.1.2", @@ -3049,9 +3049,9 @@ "dev": true }, "object-to-html-renderer": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/object-to-html-renderer/-/object-to-html-renderer-1.1.3.tgz", - "integrity": "sha512-OWZd0lRBOQylycJEuFf9CfeYEOsylU5CUf44yFWN6JEE3MpVts1nSwLCIQpUCcASwHJ0qa33DpI3eNLwcXiDWA==" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object-to-html-renderer/-/object-to-html-renderer-1.3.0.tgz", + "integrity": "sha512-42I80O1u5VWJI1lLFt8XH2ig2sUwWuR8Mv1W6+7Fb4CJ8PF+TWfxDNd6e6XzfTGQPVDKuyrDl/V04QHi5Yfrgg==" }, "object.assign": { "version": "4.1.2", diff --git a/website/package.json b/website/package.json index 1b7495af965cbb5d1c725223a223969918e768d3..df0623b988cd71b2798207d03d0ed8187755fdef 100644 --- a/website/package.json +++ b/website/package.json @@ -16,7 +16,7 @@ "dependencies": { "ks-cheap-translator": "^0.1.0", "mentalo-engine": "^0.2.2", - "object-to-html-renderer": "^1.1.1" + "object-to-html-renderer": "^1.3.0" }, "devDependencies": { "sass": "^1.32.0", diff --git a/website/src/generic-components/image-carousel.js b/website/src/generic-components/image-carousel.js index cd28b1b1c6cacc1ab910a1e767ea680328438905..a59315b5f122a5017a7db5b611809668e2de89c6 100644 --- a/website/src/generic-components/image-carousel.js +++ b/website/src/generic-components/image-carousel.js @@ -3,7 +3,7 @@ class ImageCarousel { constructor(props) { this.props = props; - this.id = this.props.images.join("").replace(/\s\./g); + this.id = this.props.images.join("").replace(/[\s\./]/g, ""); this.state = { showImageIndex: 0, }; @@ -12,12 +12,18 @@ class ImageCarousel { } run() { - this.runningInterval = setInterval(() => { + const runningInterval = setInterval(() => { let { showImageIndex } = this.state; const { images } = this.props; this.state.showImageIndex = showImageIndex < images.length - 1 ? ++showImageIndex : 0; this.refreshImage(); }, this.RUN_INTERVAL); + + obj2htm.registerAsyncSubscription(this.id, function () { + clearInterval(runningInterval) + }); + + this.runningInterval = runningInterval; } setImageIndex(i) { @@ -27,6 +33,7 @@ class ImageCarousel { } refreshImage() { + console.log("refresh img", this.runningInterval, this.props.images) obj2htm.subRender(this.render(), document.getElementById(this.id), { mode: "replace", }); diff --git a/website/src/lib/web-page.js b/website/src/lib/web-page.js index 39631cb3dd4f6c9ea1a0b0fc541ff05b13d02dcb..5324d202253cadfd2b7337ef5e1b496ce4ece5e3 100644 --- a/website/src/lib/web-page.js +++ b/website/src/lib/web-page.js @@ -10,6 +10,8 @@ class WebPage { this.id = "webpage-" + performance.now(); } + this.translations_ready = false; + translator.init({ translations_url, supported_languages: ["fr", "en"], @@ -17,11 +19,12 @@ class WebPage { } refresh() { - obj2htm.subRender(this.render(), document.getElementById(this.id), { mode: "replace" }) + obj2htm.subRender(this.render(), document.getElementById(this.id), { mode: "replace" }); } refresh_all() { - obj2htm.renderCycle() + this.translations_ready = true; + obj2htm.renderCycle(); } } diff --git a/website/src/pages/games/components/game-articles.js b/website/src/pages/games/components/game-articles.js index 7ad6ad43703c7ab815a85cc786cba8de80e52249..b47b186c4531d0c238ff8dc89bc127c29893585f 100644 --- a/website/src/pages/games/components/game-articles.js +++ b/website/src/pages/games/components/game-articles.js @@ -11,7 +11,7 @@ class GameArticles { articles: [], }; this.id = "game-articles-section"; - this.loadArticles(); + this.props.translations_ready && this.loadArticles(); } loadArticles() { diff --git a/website/src/pages/games/games.js b/website/src/pages/games/games.js index 17ffd9371763a9b788fca0ffccd70564bdf7f97a..ed627df8c27bc71aa11d9cb06da9aecd39e5f100 100644 --- a/website/src/pages/games/games.js +++ b/website/src/pages/games/games.js @@ -40,7 +40,7 @@ class GamesPage extends WebPage { }, ], }, - new GameArticles().render(), + new GameArticles({ translations_ready: this.translations_ready }).render(), ], }; }