UNPKG

synapse-react-client

Version:

[![npm version](https://badge.fury.io/js/synapse-react-client.svg)](https://badge.fury.io/js/synapse-react-client) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettie

47 lines (46 loc) 1.56 kB
import { jsx as v } from "react/jsx-runtime"; import { createContext as x, useContext as D, useEffect as m, useState as E, useMemo as p, useCallback as M } from "react"; import b from "lodash-es/noop"; const f = x(void 0); function A(s) { const { children: o, defaultTitle: n, defaultDescription: r } = s, [c, d] = E([]), u = p( () => [...c].sort((t, i) => i.priority - t.priority), [c] ), a = M( (t) => { const i = { id: /* @__PURE__ */ Symbol("DocumentMetadataEntry"), title: t.title, description: t.description, priority: t.priority ?? 0 }; return d((e) => [...e, i]), () => { d((e) => e.filter((l) => l.id !== i.id)); }; }, [d] ), y = p( () => ({ register: a }), [a] ); return m(() => { const t = u.find((e) => e.title !== void 0)?.title ?? n; t !== void 0 && document.title !== t && (document.title = t); const i = document.querySelector( 'meta[name="description"]' ); if (i) { const e = u.find((l) => l.description !== void 0)?.description ?? r; typeof e == "string" && i.getAttribute("content") !== e && i.setAttribute("content", e); } }, [n, r, u]), /* @__PURE__ */ v(f.Provider, { value: y, children: o }); } function P(s) { const o = D(f), { title: n, description: r, priority: c } = s; m(() => o ? o.register({ title: n, description: r, priority: c }) : b, [o, n, r, c]); } export { A as DocumentMetadataProvider, P as useDocumentMetadata }; //# sourceMappingURL=DocumentMetadataContext.js.map