diff --git a/.changeset/nasty-forks-beg.md b/.changeset/nasty-forks-beg.md index e8fc1198da..0662431453 100644 --- a/.changeset/nasty-forks-beg.md +++ b/.changeset/nasty-forks-beg.md @@ -3,13 +3,12 @@ '@backstage/plugin-search': minor --- -The SearchPage component can now be configured via app-config.yaml with an initial state to define how it behaves when it is first loaded or reset. Check out the following example: +The SearchPage component can now be configured via app-config.yaml with default query parameters to define how it behaves when it is first loaded or reset. Check out the following example: ```yaml -app: - search: - initialState: - pageLimit: 50 +search: + query: + pageLimit: 50 ``` Acceptable values for `pageLimit` are `10`, `25`, `50` or `100`. diff --git a/.github/uffizzi/uffizzi.production.app-config.yaml b/.github/uffizzi/uffizzi.production.app-config.yaml index 2f84e766d7..34f4c90f0b 100644 --- a/.github/uffizzi/uffizzi.production.app-config.yaml +++ b/.github/uffizzi/uffizzi.production.app-config.yaml @@ -283,4 +283,4 @@ permission: search: query: - pageLimit: 100 \ No newline at end of file + pageLimit: 50 diff --git a/plugins/search-backend/README.md b/plugins/search-backend/README.md index 3c85258b2c..b89c6acf68 100644 --- a/plugins/search-backend/README.md +++ b/plugins/search-backend/README.md @@ -10,19 +10,3 @@ centralized in the `search` plugin README.md. For a better overview of how the search platform is put together, check the [Backstage Search Architecture](https://backstage.io/docs/features/search/architecture) documentation. - -### Optional Settings - -Configure the search query values via `app-config.yaml` to define how it behaves by default. - -```yaml -# app-config.yaml -search: - query: - pageLimit: 50 -``` - -Acceptable values for `pageLimit` are `10`, `25`, `50` or `100`. - -**NOTE**: Currently this configuration only reflects the initial state of the Search React components. This means that -it defines how it behaves when it is first loaded or reset. diff --git a/plugins/search-backend/config.d.ts b/plugins/search-backend/config.d.ts index ff225be500..3dbdf78dfe 100644 --- a/plugins/search-backend/config.d.ts +++ b/plugins/search-backend/config.d.ts @@ -40,21 +40,5 @@ export interface Config { */ queryLatencyBudgetMs?: number; }; - - /** - * An object representing the default search query configuration. - * By configuring and modifying the values of this object, - * you can customize the default values of the search queries - * and define how it behaves by default. - */ - query?: { - /** - * A number indicating the maximum number of results to be returned - * per page during pagination. - * - * @visibility frontend - */ - pageLimit?: 10 | 25 | 50 | 100; - }; }; } diff --git a/plugins/search-backend/package.json b/plugins/search-backend/package.json index ba36bea2a9..d46197735f 100644 --- a/plugins/search-backend/package.json +++ b/plugins/search-backend/package.json @@ -72,6 +72,5 @@ "files": [ "dist", "config.d.ts" - ], - "configSchema": "config.d.ts" + ] } diff --git a/plugins/search-react/src/context/SearchContext.tsx b/plugins/search-react/src/context/SearchContext.tsx index e62aeedbc0..add62b39df 100644 --- a/plugins/search-react/src/context/SearchContext.tsx +++ b/plugins/search-react/src/context/SearchContext.tsx @@ -102,7 +102,7 @@ export const useSearchContextCheck = () => { * The initial state of `SearchContextProvider`. * */ -export const searchInitialState = { +const searchInitialState: SearchContextState = { term: '', types: [], filters: {}, diff --git a/plugins/search/README.md b/plugins/search/README.md index 3803b71e43..e6b664338d 100644 --- a/plugins/search/README.md +++ b/plugins/search/README.md @@ -8,6 +8,22 @@ Development is ongoing. You can follow the progress and contribute at the Backst Run `yarn dev` in the root directory, and then navigate to [/search](http://localhost:3000/search) to check out the plugin. +### Optional Settings + +Configure the search query values via `app-config.yaml` to define how it behaves by default. + +```yaml +# app-config.yaml +search: + query: + pageLimit: 50 +``` + +Acceptable values for `pageLimit` are `10`, `25`, `50` or `100`. + +**NOTE**: Currently this configuration only reflects the initial state of the Search React components. This means that +it defines how it behaves when it is first loaded or reset. + ### Areas of Responsibility This search plugin is primarily responsible for the following: diff --git a/plugins/search/config.d.ts b/plugins/search/config.d.ts new file mode 100644 index 0000000000..d9a5ce4a1b --- /dev/null +++ b/plugins/search/config.d.ts @@ -0,0 +1,35 @@ +/* + * Copyright 2023 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export interface Config { + /** Configuration options for the search plugin */ + search?: { + /** + * An object representing the default search query configuration. + * By configuring and modifying the values of this object, + * you can customize the default values of the search queries + * and define how it behaves by default. + */ + query?: { + /** + * A number indicating the maximum number of results to be returned + * per page during pagination. + * @visibility frontend + */ + pageLimit?: 10 | 25 | 50 | 100; + }; + }; +} diff --git a/plugins/search/package.json b/plugins/search/package.json index 3bca411e3e..e155783fc8 100644 --- a/plugins/search/package.json +++ b/plugins/search/package.json @@ -70,6 +70,8 @@ "msw": "^1.0.0" }, "files": [ - "dist" - ] + "dist", + "config.d.ts" + ], + "configSchema": "config.d.ts" }