Files
automatisch/packages/web/src/components/MetadataProvider/index.tsx
2024-02-07 11:51:17 +00:00

43 lines
1.1 KiB
TypeScript

import * as React from 'react';
import useConfig from 'hooks/useConfig';
type MetadataProviderProps = {
children: React.ReactNode;
};
const MetadataProvider = ({
children,
}: MetadataProviderProps): React.ReactElement => {
const { config } = useConfig();
React.useEffect(() => {
document.title = (config?.title as string) || 'Automatisch';
}, [config?.title]);
React.useEffect(() => {
const existingFaviconElement = document.querySelector(
"link[rel~='icon']"
) as HTMLLinkElement | null;
if (config?.disableFavicon === true) {
existingFaviconElement?.remove();
}
if (config?.disableFavicon === false) {
if (existingFaviconElement) {
existingFaviconElement.href = '/browser-tab.ico';
} else {
const newFaviconElement = document.createElement('link');
newFaviconElement.rel = 'icon';
document.head.appendChild(newFaviconElement);
newFaviconElement.href = '/browser-tab.ico';
}
}
}, [config?.disableFavicon]);
return <>{children}</>;
};
export default MetadataProvider;