diff --git a/client/homebrew/pages/editPage/editPage.jsx b/client/homebrew/pages/editPage/editPage.jsx index e1f7dca5f..b4e8d3d32 100644 --- a/client/homebrew/pages/editPage/editPage.jsx +++ b/client/homebrew/pages/editPage/editPage.jsx @@ -26,7 +26,7 @@ import RecentNavItems from './client/homebrew/navbar/recent.navitem.jsx'; const { both: RecentNavItem } = RecentNavItems; // Page specific imports -import { Meta } from 'vitreum/headtags'; +import { Meta } from './vitreum/headtags.js'; import { md5 } from 'hash-wasm'; import { gzipSync, strToU8 } from 'fflate'; import { makePatches, stringifyPatches } from '@sanity/diff-match-patch'; diff --git a/client/homebrew/pages/homePage/homePage.jsx b/client/homebrew/pages/homePage/homePage.jsx index fd5a7261a..9fe28a346 100644 --- a/client/homebrew/pages/homePage/homePage.jsx +++ b/client/homebrew/pages/homePage/homePage.jsx @@ -27,7 +27,7 @@ const { both: RecentNavItem } = RecentNavItems; // Page specific imports -import { Meta } from 'vitreum/headtags'; +import { Meta } from './vitreum/headtags.js'; const BREWKEY = 'homebrewery-new'; const STYLEKEY = 'homebrewery-new-style'; diff --git a/client/homebrew/pages/newPage/newPage.jsx b/client/homebrew/pages/newPage/newPage.jsx index 860fa310c..c1947c326 100644 --- a/client/homebrew/pages/newPage/newPage.jsx +++ b/client/homebrew/pages/newPage/newPage.jsx @@ -26,7 +26,7 @@ import RecentNavItems from './client/homebrew/navbar/recent.navitem.jsx'; const { both: RecentNavItem } = RecentNavItems; // Page specific imports -import { Meta } from 'vitreum/headtags'; +import { Meta } from './vitreum/headtags.js'; const BREWKEY = 'HB_newPage_content'; const STYLEKEY = 'HB_newPage_style'; diff --git a/client/homebrew/pages/sharePage/sharePage.jsx b/client/homebrew/pages/sharePage/sharePage.jsx index 8de9642f5..86e6278c0 100644 --- a/client/homebrew/pages/sharePage/sharePage.jsx +++ b/client/homebrew/pages/sharePage/sharePage.jsx @@ -1,6 +1,6 @@ import './sharePage.less'; import React, { useState, useEffect, useCallback } from 'react'; -import { Meta } from 'vitreum/headtags'; +import { Meta } from './vitreum/headtags.js'; import Nav from './client/homebrew/navbar/nav.jsx'; import Navbar from './client/homebrew/navbar/navbar.jsx'; diff --git a/vitreum/headtags.js b/vitreum/headtags.js new file mode 100644 index 000000000..a74ad44f7 --- /dev/null +++ b/vitreum/headtags.js @@ -0,0 +1,82 @@ +import React, { useEffect } from "react"; +import injectTag from "./injectTag.js"; + +const obj2props = (obj) => + Object.entries(obj) + .map(([k, v]) => `${k}="${v}"`) + .join(" "); +const toStr = (chld) => (Array.isArray(chld) ? chld.join("") : chld); +const onServer = typeof window === "undefined"; + +let NamedTags = {}; +let UnnamedTags = []; + +export const HeadComponents = { + Title({ children }) { + if (onServer) NamedTags.title = `