diff --git a/docs/my-website/docusaurus.config.js b/docs/my-website/docusaurus.config.js index 7974f613c8..0ae35686c6 100644 --- a/docs/my-website/docusaurus.config.js +++ b/docs/my-website/docusaurus.config.js @@ -31,6 +31,7 @@ const config = { [ require.resolve("@getcanary/docusaurus-pagefind"), { + indexOnly: true, styles: { "--canary-color-primary-c": 0.1, "--canary-color-primary-h": 270, diff --git a/docs/my-website/package.json b/docs/my-website/package.json index 7628a862f5..6fc4ea23c4 100644 --- a/docs/my-website/package.json +++ b/docs/my-website/package.json @@ -19,7 +19,7 @@ "@docusaurus/plugin-ideal-image": "^2.4.1", "@docusaurus/preset-classic": "2.4.1", "@getcanary/docusaurus-pagefind": "^0.0.11", - "@getcanary/web": "^0.0.53", + "@getcanary/web": "^0.0.54", "@mdx-js/react": "^1.6.22", "clsx": "^1.2.1", "docusaurus": "^1.14.7", diff --git a/docs/my-website/src/theme/SearchBar.js b/docs/my-website/src/theme/SearchBar.js new file mode 100644 index 0000000000..09ae04630e --- /dev/null +++ b/docs/my-website/src/theme/SearchBar.js @@ -0,0 +1,84 @@ +import React from "react"; +import SearchBar from "@theme-original/SearchBar"; + +import useDocusaurusContext from "@docusaurus/useDocusaurusContext"; +import { usePluginData } from "@docusaurus/useGlobalData"; + +export default function SearchBarWrapper(props) { + const { siteConfig } = useDocusaurusContext(); + const { options } = usePluginData("docusaurus-plugin-pagefind-canary"); + + const [path, setPath] = React.useState(""); + const [loaded, setLoaded] = React.useState(false); + + React.useEffect(() => { + setPath(`${siteConfig.baseUrl}pagefind/pagefind.js`); + }, [siteConfig]); + + React.useEffect(() => { + Promise.all([ + import("@getcanary/web/components/canary-root"), + import("@getcanary/web/components/canary-provider-pagefind"), + import("@getcanary/web/components/canary-modal"), + import("@getcanary/web/components/canary-trigger-logo"), + import("@getcanary/web/components/canary-content"), + import("@getcanary/web/components/canary-search"), + import("@getcanary/web/components/canary-search-input"), + import("@getcanary/web/components/canary-search-results"), + import("@getcanary/web/components/canary-footer"), + import("@getcanary/web/components/canary-callout-calendly"), + import("@getcanary/web/components/canary-callout-discord"), + ]) + .then(() => setLoaded(true)) + .catch(console.error); + }, []); + + if (!loaded || !path) { + return null; + } + + return ( +