From c4f5df51d56c9423a25d07dcfd7fd271b9bae575 Mon Sep 17 00:00:00 2001 From: Baptiste Arnaud Date: Tue, 5 Dec 2023 07:36:57 +0100 Subject: [PATCH] :alembic: (docs) Replace Algolia search with Community Search --- apps/docs/package.json | 1 + apps/docs/src/css/custom.css | 4 ++ apps/docs/src/theme/SearchBar/index.js | 55 ++++++++++++++++++++++++ apps/docs/src/theme/SearchBar/styles.css | 14 ++++++ pnpm-lock.yaml | 3 ++ 5 files changed, 77 insertions(+) create mode 100644 apps/docs/src/theme/SearchBar/index.js create mode 100644 apps/docs/src/theme/SearchBar/styles.css diff --git a/apps/docs/package.json b/apps/docs/package.json index f9cd2768a0..91ce9279fb 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -16,6 +16,7 @@ "api:generate": "dotenv -e ./.env -e ../../.env -- tsx --tsconfig ../builder/tsconfig.json ../builder/src/helpers/server/generateOpenApi.ts && dotenv -e ./.env -e ../../.env -- tsx --tsconfig ../viewer/openapi.tsconfig.json ../viewer/src/helpers/server/generateOpenApi.ts" }, "dependencies": { + "@docsearch/react": "^3.5.2", "@docusaurus/core": "2.4.1", "@docusaurus/preset-classic": "2.4.1", "@docusaurus/theme-common": "2.4.1", diff --git a/apps/docs/src/css/custom.css b/apps/docs/src/css/custom.css index 87cbaa3226..7fc32a4810 100644 --- a/apps/docs/src/css/custom.css +++ b/apps/docs/src/css/custom.css @@ -137,3 +137,7 @@ video { .asterix { color: rgb(239, 81, 81); } + +[aria-describedby='community-widget-description'] { + display: none !important; +} diff --git a/apps/docs/src/theme/SearchBar/index.js b/apps/docs/src/theme/SearchBar/index.js new file mode 100644 index 0000000000..ae023bcc18 --- /dev/null +++ b/apps/docs/src/theme/SearchBar/index.js @@ -0,0 +1,55 @@ +import React, { useCallback, useRef } from 'react' +import { DocSearchButton } from '@docsearch/react' +import Head from '@docusaurus/Head' +import useDocusaurusContext from '@docusaurus/useDocusaurusContext' +import translations from '@theme/SearchTranslations' +let DocSearchModal = null +function DocSearch() { + // We let user override default searchParameters if she wants to + const searchButtonRef = useRef(null) + const importDocSearchModalIfNeeded = useCallback(() => { + if (DocSearchModal) { + return Promise.resolve() + } + return Promise.all([ + import('@docsearch/react/modal'), + import('@docsearch/react/style'), + import('./styles.css'), + ]).then(([{ DocSearchModal: Modal }]) => { + DocSearchModal = Modal + }) + }, []) + + return ( + <> + + + + + { + window.Widget.toggleWidget() + }} + ref={searchButtonRef} + translations={translations.button} + /> + + ) +} +export default function SearchBar() { + useDocusaurusContext() + return +} diff --git a/apps/docs/src/theme/SearchBar/styles.css b/apps/docs/src/theme/SearchBar/styles.css new file mode 100644 index 0000000000..fdf8dff9a4 --- /dev/null +++ b/apps/docs/src/theme/SearchBar/styles.css @@ -0,0 +1,14 @@ +:root { + --docsearch-primary-color: var(--ifm-color-primary); + --docsearch-text-color: var(--ifm-font-color-base); +} + +.DocSearch-Button { + margin: 0; + transition: all var(--ifm-transition-fast) + var(--ifm-transition-timing-default); +} + +.DocSearch-Container { + z-index: calc(var(--ifm-z-index-fixed) + 1); +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4d038fbe7c..690a1df22a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -351,6 +351,9 @@ importers: apps/docs: dependencies: + '@docsearch/react': + specifier: ^3.5.2 + version: 3.5.2(@algolia/client-search@4.15.0)(@types/react@18.0.28)(react-dom@17.0.2)(react@17.0.2)(search-insights@2.8.3) '@docusaurus/core': specifier: 2.4.1 version: 2.4.1(@docusaurus/types@2.3.1)(react-dom@17.0.2)(react@17.0.2)(typescript@5.3.2)