import { useEffect } from "react";
import { useIntl } from "react-intl";
export default function usePageTitle(messageIdOrText) {
const intl = useIntl();
useEffect(() => {
let pageTitle;
let systemName;
let gldName;
// If string looks like an intl id, try translate
try {
pageTitle = intl.formatMessage({ id: messageIdOrText });
systemName = intl.formatMessage({ id: "PNSPS_fullname" });
gldName = intl.formatMessage({ id: "HKGLD" });
} catch {
pageTitle = messageIdOrText;
}
const fullTitle = `${pageTitle} - ${systemName} | ${gldName}`;
// Update document title (tab title)
document.title = fullTitle;
// Update and so they're language-dependent too
const metaTitle = document.querySelector('meta[name="title"]');
if (metaTitle) {
metaTitle.setAttribute("content", fullTitle);
}
const metaDescription = document.querySelector('meta[name="description"]');
if (metaDescription) {
metaDescription.setAttribute("content", fullTitle);
}
// Keep in sync with current locale
if (document.documentElement) {
document.documentElement.lang = intl.locale || "en";
}
}, [messageIdOrText, intl]);
}