stash/ui/v2.5/src/hooks/title.ts
2025-12-03 16:35:37 +11:00

29 lines
801 B
TypeScript

import { MessageDescriptor, useIntl } from "react-intl";
import { useConfigurationContext } from "./Config";
export const TITLE = "Stash";
export const TITLE_SEPARATOR = " | ";
export function useTitleProps(...messages: (string | MessageDescriptor)[]) {
const intl = useIntl();
const config = useConfigurationContext();
const title = config.configuration.ui.title || TITLE;
const parts = messages.map((msg) => {
if (typeof msg === "object") {
return intl.formatMessage(msg);
} else {
return msg;
}
});
return makeTitleProps(title, ...parts);
}
export function makeTitleProps(title: string, ...parts: string[]) {
const fullTitle = [...parts, title].join(TITLE_SEPARATOR);
return {
titleTemplate: `%s | ${fullTitle}`,
defaultTitle: fullTitle,
};
}