Skip to content
This repository was archived by the owner on Nov 2, 2025. It is now read-only.

Commit 9c68988

Browse files
feat(search): add runtime support for DocSearch v4 (facebook#11327)
Co-authored-by: sebastien <lorber.sebastien@gmail.com>
1 parent a9bab41 commit 9c68988

File tree

58 files changed

+2362
-465
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+2362
-465
lines changed

.eslintrc.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,7 @@ module.exports = {
304304
'jest/prefer-expect-resolves': WARNING,
305305
'jest/prefer-lowercase-title': [WARNING, {ignore: ['describe']}],
306306
'jest/prefer-spy-on': WARNING,
307-
'jest/prefer-to-be': WARNING,
307+
'jest/prefer-to-be': OFF,
308308
'jest/prefer-to-have-length': WARNING,
309309
'jest/require-top-level-describe': ERROR,
310310
'jest/valid-title': [

.github/workflows/tests-windows.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,12 +56,16 @@ jobs:
5656
run: yarn build:website:fast
5757

5858
- name: TypeCheck website
59-
# TODO temporary, remove TS skipLibCheck
6059
# see https://github.com/facebook/docusaurus/pull/10486
61-
run: yarn workspace website typecheck --project tsconfig.skipLibCheck.json
60+
run: yarn workspace website typecheck
6261
- name: TypeCheck website - min version - v5.1
6362
run: |
6463
yarn add typescript@5.1.6 --exact -D -W --ignore-scripts
64+
65+
# DocSearch@4/ai@5 doesn't support TS 5.1 (with skipLibCheck=false)
66+
jq '.resolutions."@docsearch/react" = "^3.9.0"' package.json > package.json.tmp && mv -Force package.json.tmp package.json
67+
yarn add @docsearch/react@^3.9.0 --exact -D -W --ignore-scripts
68+
6569
yarn workspace website typecheck
6670
- name: TypeCheck website - max version - Latest
6771
# For latest TS there are often lib check errors, so we disable it

.github/workflows/tests.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,16 @@ jobs:
5555
run: yarn workspace website test:css-order
5656

5757
- name: TypeCheck website
58-
# TODO temporary, remove TS skipLibCheck
5958
# see https://github.com/facebook/docusaurus/pull/10486
60-
run: yarn workspace website typecheck --project tsconfig.skipLibCheck.json
59+
run: yarn workspace website typecheck
6160
- name: TypeCheck website - min version - v5.1
6261
run: |
6362
yarn add typescript@5.1.6 --exact -D -W --ignore-scripts
63+
64+
# DocSearch@4/ai@5 doesn't support TS 5.1 (with skipLibCheck=false)
65+
jq '.resolutions."@docsearch/react" = "^3.9.0"' package.json > package.json.tmp && mv -f package.json.tmp package.json
66+
yarn add @docsearch/react@^3.9.0 --exact -D -W --ignore-scripts
67+
6468
yarn workspace website typecheck
6569
- name: TypeCheck website - max version - Latest
6670
# For latest TS there are often lib check errors, so we disable it

package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,5 +129,8 @@
129129
"stylelint-config-standard": "^29.0.0",
130130
"typescript": "~5.8.2"
131131
},
132+
"resolutions": {
133+
"@docsearch/react": "^4.0.1"
134+
},
132135
"packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
133136
}

packages/docusaurus-theme-classic/src/theme/Navbar/Search/styles.module.css

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ See https://github.com/facebook/docusaurus/pull/9385
2222

2323
@media (min-width: 997px) {
2424
.navbarSearchContainer {
25-
padding: var(--ifm-navbar-item-padding-vertical)
26-
var(--ifm-navbar-item-padding-horizontal);
25+
padding: 0 var(--ifm-navbar-item-padding-horizontal);
2726
}
2827
}

packages/docusaurus-theme-search-algolia/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@
4141
"@docusaurus/theme-translations": "3.8.1",
4242
"@docusaurus/utils": "3.8.1",
4343
"@docusaurus/utils-validation": "3.8.1",
44-
"algoliasearch": "^5.17.1",
45-
"algoliasearch-helper": "^3.22.6",
44+
"algoliasearch": "^5.37.0",
45+
"algoliasearch-helper": "^3.26.0",
4646
"clsx": "^2.0.0",
4747
"eta": "^2.2.0",
4848
"fs-extra": "^11.1.1",
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
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 {mergeFacetFilters} from '../client/utils';
9+
10+
describe('mergeFacetFilters', () => {
11+
it('merges [string,string]', () => {
12+
expect(mergeFacetFilters('f1', 'f2')).toEqual(['f1', 'f2']);
13+
});
14+
15+
it('merges [string,array]', () => {
16+
// TODO this looks wrong to me, should be ['f1', ['f2', 'f3']] ?
17+
expect(mergeFacetFilters('f1', ['f2', 'f3'])).toEqual(['f1', 'f2', 'f3']);
18+
});
19+
20+
it('merges [string,undefined]', () => {
21+
expect(mergeFacetFilters('f1', undefined)).toEqual('f1');
22+
});
23+
24+
it('merges [undefined,string]', () => {
25+
expect(mergeFacetFilters(undefined, 'f1')).toEqual('f1');
26+
});
27+
28+
it('merges [array,undefined]', () => {
29+
expect(mergeFacetFilters(['f1', 'f2'], undefined)).toEqual(['f1', 'f2']);
30+
});
31+
32+
it('merges [undefined,array]', () => {
33+
expect(mergeFacetFilters(undefined, ['f1', 'f2'])).toEqual(['f1', 'f2']);
34+
});
35+
36+
it('merges [array,array]', () => {
37+
expect(mergeFacetFilters(['f1'], ['f2'])).toEqual(['f1', 'f2']);
38+
39+
// TODO this looks wrong to me, should be [['f1', 'f2'], ['f3', 'f4']] ?
40+
expect(mergeFacetFilters(['f1', 'f2'], ['f3', 'f4'])).toEqual([
41+
'f1',
42+
'f2',
43+
'f3',
44+
'f4',
45+
]);
46+
});
47+
});

0 commit comments

Comments
 (0)