UNPKG

@mantine/hooks

Version:

A collection of 50+ hooks for state and UI management

30 lines (29 loc) 1.05 kB
"use client"; const require_use_isomorphic_effect = require("../use-isomorphic-effect/use-isomorphic-effect.cjs"); let react = require("react"); //#region packages/@mantine/hooks/src/use-favicon/use-favicon.ts const MIME_TYPES = { ico: "image/x-icon", png: "image/png", svg: "image/svg+xml", gif: "image/gif" }; function useFavicon(url) { const link = (0, react.useRef)(null); require_use_isomorphic_effect.useIsomorphicEffect(() => { if (!url) return; if (!link.current) { document.querySelectorAll("link[rel*=\"icon\"]").forEach((element) => document.head.removeChild(element)); const element = document.createElement("link"); element.rel = "shortcut icon"; link.current = element; document.querySelector("head").appendChild(element); } const splittedUrl = url.split("."); link.current.setAttribute("type", MIME_TYPES[splittedUrl[splittedUrl.length - 1].toLowerCase()]); link.current.setAttribute("href", url); }, [url]); } //#endregion exports.useFavicon = useFavicon; //# sourceMappingURL=use-favicon.cjs.map