From bd1cf8888f4b85e8f56517aa218f1ed0ac799ce1 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Wed, 17 Jun 2020 16:24:58 +0200 Subject: [PATCH] Don't reload i18n when cached (#2973) --- packages/page-settings/src/I18n/index.tsx | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/page-settings/src/I18n/index.tsx b/packages/page-settings/src/I18n/index.tsx index 7d17781711..2019462bef 100644 --- a/packages/page-settings/src/I18n/index.tsx +++ b/packages/page-settings/src/I18n/index.tsx @@ -33,10 +33,19 @@ type Progress = [[number, number, number], Record; type StringsMod = Record; -async function retrieveJson (url: string): Promise { - const response = await fetch(`locales/${url}`); +const cache = new Map(); - return response.json(); +async function retrieveJson (url: string): Promise { + if (cache.has(url)) { + return cache.get(url); + } + + const response = await fetch(`locales/${url}`); + const json = await response.json() as unknown; + + cache.set(url, json); + + return json; } async function retrieveEnglish (): Promise {