@docusaurus/theme-search-algolia 0.0.0-4376 → 0.0.0-4377

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,6 +4,4 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
- import type { SearchQuery } from '@theme/hooks/useSearchQuery';
8
- declare function useSearchQuery(): SearchQuery;
9
- export default useSearchQuery;
7
+ export { useAlgoliaContextualFacetFilters } from './useAlgoliaContextualFacetFilters';
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ export { useAlgoliaContextualFacetFilters } from './useAlgoliaContextualFacetFilters';
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ export declare function useAlgoliaContextualFacetFilters(): (string | string[])[];
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import { useContextualSearchFilters } from '@docusaurus/theme-common';
8
8
  // Translate search-engine agnostic search filters to Algolia search filters
9
- export default function useAlgoliaContextualFacetFilters() {
9
+ export function useAlgoliaContextualFacetFilters() {
10
10
  const { locale, tags } = useContextualSearchFilters();
11
11
  // seems safe to convert locale->language, see AlgoliaSearchMetadata comment
12
12
  const languageFilter = `language:${locale}`;
@@ -12,10 +12,9 @@ import { useHistory } from '@docusaurus/router';
12
12
  import { useBaseUrlUtils } from '@docusaurus/useBaseUrl';
13
13
  import Link from '@docusaurus/Link';
14
14
  import Head from '@docusaurus/Head';
15
- import useSearchQuery from '@theme/hooks/useSearchQuery';
16
- import { isRegexpStringMatch } from '@docusaurus/theme-common';
15
+ import { isRegexpStringMatch, useSearchPage } from '@docusaurus/theme-common';
17
16
  import { DocSearchButton, useDocSearchKeyboardEvents } from '@docsearch/react';
18
- import useAlgoliaContextualFacetFilters from '@theme/hooks/useAlgoliaContextualFacetFilters';
17
+ import { useAlgoliaContextualFacetFilters } from '@docusaurus/theme-search-algolia/client';
19
18
  import { translate } from '@docusaurus/Translate';
20
19
  import styles from './styles.module.css';
21
20
  let DocSearchModal = null;
@@ -23,7 +22,7 @@ function Hit({ hit, children, }) {
23
22
  return <Link to={hit.url}>{children}</Link>;
24
23
  }
25
24
  function ResultsFooter({ state, onClose }) {
26
- const { generateSearchPageLink } = useSearchQuery();
25
+ const { generateSearchPageLink } = useSearchPage();
27
26
  return (<Link to={generateSearchPageLink(state.query)} onClick={onClose}>
28
27
  See all {state.context.nbHits} results
29
28
  </Link>);
@@ -13,10 +13,9 @@ import clsx from 'clsx';
13
13
  import Head from '@docusaurus/Head';
14
14
  import Link from '@docusaurus/Link';
15
15
  import ExecutionEnvironment from '@docusaurus/ExecutionEnvironment';
16
- import { useTitleFormatter, usePluralForm, isRegexpStringMatch, useDynamicCallback, } from '@docusaurus/theme-common';
16
+ import { useTitleFormatter, usePluralForm, isRegexpStringMatch, useDynamicCallback, useSearchPage, } from '@docusaurus/theme-common';
17
17
  import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
18
18
  import { useAllDocsData } from '@docusaurus/plugin-content-docs/client';
19
- import useSearchQuery from '@theme/hooks/useSearchQuery';
20
19
  import Layout from '@theme/Layout';
21
20
  import Translate, { translate } from '@docusaurus/Translate';
22
21
  import styles from './styles.module.css';
@@ -67,7 +66,7 @@ function SearchPage() {
67
66
  algolia: { appId, apiKey, indexName, externalUrlRegex }, }, }, i18n: { currentLocale }, } = useDocusaurusContext();
68
67
  const documentsFoundPlural = useDocumentsFoundPlural();
69
68
  const docsSearchVersionsHelpers = useDocsSearchVersionsHelpers();
70
- const { searchQuery, setSearchQuery } = useSearchQuery();
69
+ const { searchQuery, setSearchQuery } = useSearchPage();
71
70
  const initialSearchResultState = {
72
71
  items: [],
73
72
  query: null,
package/package.json CHANGED
@@ -1,8 +1,12 @@
1
1
  {
2
2
  "name": "@docusaurus/theme-search-algolia",
3
- "version": "0.0.0-4376",
3
+ "version": "0.0.0-4377",
4
4
  "description": "Algolia search component for Docusaurus.",
5
5
  "main": "lib/index.js",
6
+ "exports": {
7
+ "./client": "./lib/client/index.js",
8
+ ".": "./lib/index.js"
9
+ },
6
10
  "types": "src/theme-search-algolia.d.ts",
7
11
  "publishConfig": {
8
12
  "access": "public"
@@ -21,12 +25,12 @@
21
25
  },
22
26
  "dependencies": {
23
27
  "@docsearch/react": "^3.0.0-alpha.39",
24
- "@docusaurus/core": "0.0.0-4376",
25
- "@docusaurus/logger": "0.0.0-4376",
26
- "@docusaurus/theme-common": "0.0.0-4376",
27
- "@docusaurus/theme-translations": "0.0.0-4376",
28
- "@docusaurus/utils": "0.0.0-4376",
29
- "@docusaurus/utils-validation": "0.0.0-4376",
28
+ "@docusaurus/core": "0.0.0-4377",
29
+ "@docusaurus/logger": "0.0.0-4377",
30
+ "@docusaurus/theme-common": "0.0.0-4377",
31
+ "@docusaurus/theme-translations": "0.0.0-4377",
32
+ "@docusaurus/utils": "0.0.0-4377",
33
+ "@docusaurus/utils-validation": "0.0.0-4377",
30
34
  "algoliasearch": "^4.10.5",
31
35
  "algoliasearch-helper": "^3.5.5",
32
36
  "clsx": "^1.1.1",
@@ -35,7 +39,7 @@
35
39
  "tslib": "^2.3.1"
36
40
  },
37
41
  "devDependencies": {
38
- "@docusaurus/module-type-aliases": "0.0.0-4376",
42
+ "@docusaurus/module-type-aliases": "0.0.0-4377",
39
43
  "fs-extra": "^10.0.0"
40
44
  },
41
45
  "peerDependencies": {
@@ -45,5 +49,5 @@
45
49
  "engines": {
46
50
  "node": ">=14"
47
51
  },
48
- "gitHead": "d95874b8c1ad60ed595d2088f23284df72903c29"
52
+ "gitHead": "5dea134d7853ad86c969384e51bc51c1e7b9fc8a"
49
53
  }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ export {useAlgoliaContextualFacetFilters} from './useAlgoliaContextualFacetFilters';
@@ -5,11 +5,10 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- import type {useAlgoliaContextualFacetFiltersReturns} from '@theme/hooks/useAlgoliaContextualFacetFilters';
9
8
  import {useContextualSearchFilters} from '@docusaurus/theme-common';
10
9
 
11
10
  // Translate search-engine agnostic search filters to Algolia search filters
12
- export default function useAlgoliaContextualFacetFilters(): useAlgoliaContextualFacetFiltersReturns {
11
+ export function useAlgoliaContextualFacetFilters() {
13
12
  const {locale, tags} = useContextualSearchFilters();
14
13
 
15
14
  // seems safe to convert locale->language, see AlgoliaSearchMetadata comment
@@ -13,10 +13,9 @@ import {useHistory} from '@docusaurus/router';
13
13
  import {useBaseUrlUtils} from '@docusaurus/useBaseUrl';
14
14
  import Link from '@docusaurus/Link';
15
15
  import Head from '@docusaurus/Head';
16
- import useSearchQuery from '@theme/hooks/useSearchQuery';
17
- import {isRegexpStringMatch} from '@docusaurus/theme-common';
16
+ import {isRegexpStringMatch, useSearchPage} from '@docusaurus/theme-common';
18
17
  import {DocSearchButton, useDocSearchKeyboardEvents} from '@docsearch/react';
19
- import useAlgoliaContextualFacetFilters from '@theme/hooks/useAlgoliaContextualFacetFilters';
18
+ import {useAlgoliaContextualFacetFilters} from '@docusaurus/theme-search-algolia/client';
20
19
  import {translate} from '@docusaurus/Translate';
21
20
  import styles from './styles.module.css';
22
21
 
@@ -56,7 +55,7 @@ type ResultsFooterProps = {
56
55
  };
57
56
 
58
57
  function ResultsFooter({state, onClose}: ResultsFooterProps) {
59
- const {generateSearchPageLink} = useSearchQuery();
58
+ const {generateSearchPageLink} = useSearchPage();
60
59
 
61
60
  return (
62
61
  <Link to={generateSearchPageLink(state.query)} onClick={onClose}>
@@ -22,10 +22,10 @@ import {
22
22
  usePluralForm,
23
23
  isRegexpStringMatch,
24
24
  useDynamicCallback,
25
+ useSearchPage,
25
26
  } from '@docusaurus/theme-common';
26
27
  import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
27
28
  import {useAllDocsData} from '@docusaurus/plugin-content-docs/client';
28
- import useSearchQuery from '@theme/hooks/useSearchQuery';
29
29
  import Layout from '@theme/Layout';
30
30
  import Translate, {translate} from '@docusaurus/Translate';
31
31
  import styles from './styles.module.css';
@@ -162,7 +162,7 @@ function SearchPage(): JSX.Element {
162
162
  const documentsFoundPlural = useDocumentsFoundPlural();
163
163
 
164
164
  const docsSearchVersionsHelpers = useDocsSearchVersionsHelpers();
165
- const {searchQuery, setSearchQuery} = useSearchQuery();
165
+ const {searchQuery, setSearchQuery} = useSearchPage();
166
166
  const initialSearchResultState: ResultDispatcherState = {
167
167
  items: [],
168
168
  query: null,
@@ -5,24 +5,8 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- declare module '@docusaurus/theme-search-algolia' {
9
- export type Options = never;
10
- }
11
-
12
- declare module '@theme/hooks/useSearchQuery' {
13
- export interface SearchQuery {
14
- searchQuery: string;
15
- setSearchQuery: (newSearchQuery: string) => void;
16
- generateSearchPageLink: (targetSearchQuery: string) => string;
17
- }
18
-
19
- export default function useSearchQuery(): SearchQuery;
20
- }
21
-
22
- declare module '@theme/hooks/useAlgoliaContextualFacetFilters' {
23
- export type useAlgoliaContextualFacetFiltersReturns = [string, string[]];
24
-
25
- export default function useAlgoliaContextualFacetFilters(): useAlgoliaContextualFacetFiltersReturns;
8
+ declare module '@docusaurus/theme-search-algolia/client' {
9
+ export function useAlgoliaContextualFacetFilters(): [string, string[]];
26
10
  }
27
11
 
28
12
  declare module '@theme/SearchPage' {
@@ -1,8 +0,0 @@
1
- /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
- import type { useAlgoliaContextualFacetFiltersReturns } from '@theme/hooks/useAlgoliaContextualFacetFilters';
8
- export default function useAlgoliaContextualFacetFilters(): useAlgoliaContextualFacetFiltersReturns;
@@ -1,43 +0,0 @@
1
- /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
- import { useHistory } from '@docusaurus/router';
8
- import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
9
- import { useCallback, useEffect, useState } from 'react';
10
- const SEARCH_PARAM_QUERY = 'q';
11
- function useSearchQuery() {
12
- const history = useHistory();
13
- const { siteConfig: { baseUrl }, } = useDocusaurusContext();
14
- const [searchQuery, setSearchQueryState] = useState('');
15
- // Init search query just after React hydration
16
- useEffect(() => {
17
- var _a;
18
- const searchQueryStringValue = (_a = new URLSearchParams(window.location.search).get(SEARCH_PARAM_QUERY)) !== null && _a !== void 0 ? _a : '';
19
- setSearchQueryState(searchQueryStringValue);
20
- }, []);
21
- const setSearchQuery = useCallback((newSearchQuery) => {
22
- const searchParams = new URLSearchParams(window.location.search);
23
- if (newSearchQuery) {
24
- searchParams.set(SEARCH_PARAM_QUERY, newSearchQuery);
25
- }
26
- else {
27
- searchParams.delete(SEARCH_PARAM_QUERY);
28
- }
29
- history.replace({
30
- search: searchParams.toString(),
31
- });
32
- setSearchQueryState(newSearchQuery);
33
- }, [history]);
34
- const generateSearchPageLink = useCallback((targetSearchQuery) =>
35
- // Refer to https://github.com/facebook/docusaurus/pull/2838
36
- `${baseUrl}search?q=${encodeURIComponent(targetSearchQuery)}`, [baseUrl]);
37
- return {
38
- searchQuery,
39
- setSearchQuery,
40
- generateSearchPageLink,
41
- };
42
- }
43
- export default useSearchQuery;
@@ -1,63 +0,0 @@
1
- /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
-
8
- import {useHistory} from '@docusaurus/router';
9
- import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
10
- import {useCallback, useEffect, useState} from 'react';
11
- import type {SearchQuery} from '@theme/hooks/useSearchQuery';
12
-
13
- const SEARCH_PARAM_QUERY = 'q';
14
-
15
- function useSearchQuery(): SearchQuery {
16
- const history = useHistory();
17
- const {
18
- siteConfig: {baseUrl},
19
- } = useDocusaurusContext();
20
-
21
- const [searchQuery, setSearchQueryState] = useState('');
22
-
23
- // Init search query just after React hydration
24
- useEffect(() => {
25
- const searchQueryStringValue =
26
- new URLSearchParams(window.location.search).get(SEARCH_PARAM_QUERY) ?? '';
27
-
28
- setSearchQueryState(searchQueryStringValue);
29
- }, []);
30
-
31
- const setSearchQuery = useCallback(
32
- (newSearchQuery: string) => {
33
- const searchParams = new URLSearchParams(window.location.search);
34
-
35
- if (newSearchQuery) {
36
- searchParams.set(SEARCH_PARAM_QUERY, newSearchQuery);
37
- } else {
38
- searchParams.delete(SEARCH_PARAM_QUERY);
39
- }
40
-
41
- history.replace({
42
- search: searchParams.toString(),
43
- });
44
- setSearchQueryState(newSearchQuery);
45
- },
46
- [history],
47
- );
48
-
49
- const generateSearchPageLink = useCallback(
50
- (targetSearchQuery: string) =>
51
- // Refer to https://github.com/facebook/docusaurus/pull/2838
52
- `${baseUrl}search?q=${encodeURIComponent(targetSearchQuery)}`,
53
- [baseUrl],
54
- );
55
-
56
- return {
57
- searchQuery,
58
- setSearchQuery,
59
- generateSearchPageLink,
60
- };
61
- }
62
-
63
- export default useSearchQuery;