Merge pull request #4453 from mozilla/fix-early-ga-mpp-3762

MPP-3762: Handle order issue with `useGoogleAnalytics`
This commit is contained in:
John Whitlock 2024-02-28 21:41:02 +00:00 коммит произвёл GitHub
Родитель 41052dec7d c5c749ffbc
Коммит 227697a391
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
1 изменённых файлов: 9 добавлений и 5 удалений

Просмотреть файл

@ -3,10 +3,8 @@ import { useState } from "react";
import { singletonHook } from "react-singleton-hook";
import { getRuntimeConfig } from "../config";
const gaIsInitialized = false;
let globalEnableGoogleAnalytics = (_: boolean): void | never => {
throw new Error("you must useGoogleAnalytics before initializing.");
};
let gaIsInitialized = false;
let globalEnableGoogleAnalytics: null | ((_: boolean) => void) = null;
export const useGoogleAnalytics = singletonHook(gaIsInitialized, () => {
const [isInitialized, setIsInitialized] = useState(gaIsInitialized);
@ -37,5 +35,11 @@ export function initGoogleAnalytics() {
});
}
});
globalEnableGoogleAnalytics(true);
if (globalEnableGoogleAnalytics === null) {
// useGoogleAnalytics is not complete. Set initial value.
gaIsInitialized = true;
} else {
// Notify listeners that Google Analytics is available.
globalEnableGoogleAnalytics(true);
}
}