diff --git a/packages/app/src/components/search/SearchModal.tsx b/packages/app/src/components/search/SearchModal.tsx index 2e18a289c9..f75017a4dd 100644 --- a/packages/app/src/components/search/SearchModal.tsx +++ b/packages/app/src/components/search/SearchModal.tsx @@ -41,8 +41,8 @@ import { SearchResult, SearchResultPager, SearchType, - useSearch, } from '@backstage/plugin-search'; +import { useSearch } from '@backstage/plugin-search-react'; import { TechDocsSearchResultListItem } from '@backstage/plugin-techdocs'; const useStyles = makeStyles(theme => ({ diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx index 65da72d91c..fd9c80686c 100644 --- a/packages/app/src/components/search/SearchPage.tsx +++ b/packages/app/src/components/search/SearchPage.tsx @@ -36,8 +36,8 @@ import { SearchResult, SearchResultPager, SearchType, - useSearch, } from '@backstage/plugin-search'; +import { useSearch } from '@backstage/plugin-search-react'; import { TechDocsSearchResultListItem } from '@backstage/plugin-techdocs'; import { Grid, List, makeStyles, Paper, Theme } from '@material-ui/core'; import React, { useContext } from 'react'; diff --git a/plugins/search/src/components/HomePageComponent/HomePageSearchBar.stories.tsx b/plugins/search/src/components/HomePageComponent/HomePageSearchBar.stories.tsx index 1a6c5fbf7b..4c20ddec39 100644 --- a/plugins/search/src/components/HomePageComponent/HomePageSearchBar.stories.tsx +++ b/plugins/search/src/components/HomePageComponent/HomePageSearchBar.stories.tsx @@ -15,7 +15,7 @@ */ import { rootRouteRef, HomePageSearchBar } from '../../plugin'; -import { searchApiRef } from '../../apis'; +import { searchApiRef } from '@backstage/plugin-search-react'; import { wrapInTestApp, TestApiProvider } from '@backstage/test-utils'; import { Grid, makeStyles } from '@material-ui/core'; import React, { ComponentType } from 'react'; diff --git a/plugins/search/src/components/HomePageComponent/HomePageSearchBar.tsx b/plugins/search/src/components/HomePageComponent/HomePageSearchBar.tsx index bccf38ab1d..bc4b409d57 100644 --- a/plugins/search/src/components/HomePageComponent/HomePageSearchBar.tsx +++ b/plugins/search/src/components/HomePageComponent/HomePageSearchBar.tsx @@ -16,7 +16,6 @@ import React, { useCallback, useState } from 'react'; import { makeStyles } from '@material-ui/core/styles'; - import { SearchBarBase, SearchBarBaseProps } from '../SearchBar'; import { useNavigateToQuery } from '../util'; diff --git a/plugins/search/src/components/SearchBar/SearchBar.test.tsx b/plugins/search/src/components/SearchBar/SearchBar.test.tsx index 73afb44f12..c48c3d3ed2 100644 --- a/plugins/search/src/components/SearchBar/SearchBar.test.tsx +++ b/plugins/search/src/components/SearchBar/SearchBar.test.tsx @@ -17,13 +17,15 @@ import React from 'react'; import { screen, render, waitFor, act } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; -import { SearchContextProvider } from '../SearchContext'; - -import { SearchBar } from './SearchBar'; import { configApiRef, analyticsApiRef } from '@backstage/core-plugin-api'; import { ApiProvider, ConfigReader } from '@backstage/core-app-api'; -import { searchApiRef } from '../../apis'; import { MockAnalyticsApi, TestApiRegistry } from '@backstage/test-utils'; +import { + SearchContextProvider, + searchApiRef, +} from '@backstage/plugin-search-react'; + +import { SearchBar } from './SearchBar'; jest.mock('@backstage/core-plugin-api', () => ({ ...jest.requireActual('@backstage/core-plugin-api'), diff --git a/plugins/search/src/components/SearchBar/SearchBar.tsx b/plugins/search/src/components/SearchBar/SearchBar.tsx index a203d27c93..70038ecc82 100644 --- a/plugins/search/src/components/SearchBar/SearchBar.tsx +++ b/plugins/search/src/components/SearchBar/SearchBar.tsx @@ -20,7 +20,6 @@ import React, { useState, useEffect, useCallback, - useContext, } from 'react'; import useDebounce from 'react-use/lib/useDebounce'; import { configApiRef, useApi } from '@backstage/core-plugin-api'; @@ -34,10 +33,9 @@ import SearchIcon from '@material-ui/icons/Search'; import ClearButton from '@material-ui/icons/Clear'; import { - SearchContext, SearchContextProvider, useSearch, -} from '../SearchContext'; +} from '@backstage/plugin-search-react'; import { TrackSearch } from '../SearchTracker'; /** @@ -53,11 +51,6 @@ export type SearchBarBaseProps = Omit & { onChange: (value: string) => void; }; -const useSearchContextCheck = () => { - const context = useContext(SearchContext); - return context !== undefined; -}; - /** * All search boxes exported by the search plugin are based on the , * and this one is based on the component from Material UI. @@ -79,7 +72,7 @@ export const SearchBarBase = ({ }: SearchBarBaseProps) => { const configApi = useApi(configApiRef); const [value, setValue] = useState(defaultValue as string); - const hasSearchContext = useSearchContextCheck(); + const hasSearchContext = useSearch(); useEffect(() => { setValue(prevValue => diff --git a/plugins/search/src/components/SearchFilter/SearchFilter.Autocomplete.test.tsx b/plugins/search/src/components/SearchFilter/SearchFilter.Autocomplete.test.tsx index ae0eeb30be..15ad348bd4 100644 --- a/plugins/search/src/components/SearchFilter/SearchFilter.Autocomplete.test.tsx +++ b/plugins/search/src/components/SearchFilter/SearchFilter.Autocomplete.test.tsx @@ -18,8 +18,11 @@ import { TestApiProvider } from '@backstage/test-utils'; import { screen, render, waitFor, within } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import React from 'react'; -import { searchApiRef } from '../../apis'; -import { SearchContextProvider, useSearch } from '../SearchContext'; +import { + SearchContextProvider, + useSearch, + searchApiRef, +} from '@backstage/plugin-search-react'; import { SearchFilter } from './SearchFilter'; const SearchContextFilterSpy = ({ name }: { name: string }) => { diff --git a/plugins/search/src/components/SearchFilter/SearchFilter.Autocomplete.tsx b/plugins/search/src/components/SearchFilter/SearchFilter.Autocomplete.tsx index 9a27f63565..03f4f28943 100644 --- a/plugins/search/src/components/SearchFilter/SearchFilter.Autocomplete.tsx +++ b/plugins/search/src/components/SearchFilter/SearchFilter.Autocomplete.tsx @@ -21,7 +21,7 @@ import { AutocompleteGetTagProps, AutocompleteRenderInputParams, } from '@material-ui/lab'; -import { useSearch } from '../SearchContext'; +import { useSearch } from '@backstage/plugin-search-react'; import { useAsyncFilterValues, useDefaultFilterValue } from './hooks'; import { SearchFilterComponentProps } from './SearchFilter'; diff --git a/plugins/search/src/components/SearchFilter/SearchFilter.test.tsx b/plugins/search/src/components/SearchFilter/SearchFilter.test.tsx index ba7abe7023..2d652df483 100644 --- a/plugins/search/src/components/SearchFilter/SearchFilter.test.tsx +++ b/plugins/search/src/components/SearchFilter/SearchFilter.test.tsx @@ -19,7 +19,7 @@ import { screen, render, waitFor } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import { SearchFilter } from './SearchFilter'; -import { SearchContextProvider } from '../SearchContext'; +import { SearchContextProvider } from '@backstage/plugin-search-react'; import { useApi } from '@backstage/core-plugin-api'; jest.mock('@backstage/core-plugin-api', () => ({ diff --git a/plugins/search/src/components/SearchFilter/SearchFilter.tsx b/plugins/search/src/components/SearchFilter/SearchFilter.tsx index 1308333100..bfbab8531c 100644 --- a/plugins/search/src/components/SearchFilter/SearchFilter.tsx +++ b/plugins/search/src/components/SearchFilter/SearchFilter.tsx @@ -30,7 +30,7 @@ import { AutocompleteFilter, SearchAutocompleteFilterProps, } from './SearchFilter.Autocomplete'; -import { useSearch } from '../SearchContext'; +import { useSearch } from '@backstage/plugin-search-react'; import { useAsyncFilterValues, useDefaultFilterValue } from './hooks'; const useStyles = makeStyles({ diff --git a/plugins/search/src/components/SearchFilter/hooks.test.tsx b/plugins/search/src/components/SearchFilter/hooks.test.tsx index d8fbe698ce..14346a29eb 100644 --- a/plugins/search/src/components/SearchFilter/hooks.test.tsx +++ b/plugins/search/src/components/SearchFilter/hooks.test.tsx @@ -17,9 +17,12 @@ import React from 'react'; import { ApiProvider } from '@backstage/core-app-api'; import { TestApiRegistry } from '@backstage/test-utils'; import { renderHook } from '@testing-library/react-hooks'; -import { SearchContextProvider, useSearch } from '../SearchContext'; +import { + SearchContextProvider, + useSearch, + searchApiRef, +} from '@backstage/plugin-search-react'; import { useDefaultFilterValue, useAsyncFilterValues } from './hooks'; -import { searchApiRef } from '../../apis'; jest.useFakeTimers(); diff --git a/plugins/search/src/components/SearchFilter/hooks.ts b/plugins/search/src/components/SearchFilter/hooks.ts index 217e65d1c0..da30466522 100644 --- a/plugins/search/src/components/SearchFilter/hooks.ts +++ b/plugins/search/src/components/SearchFilter/hooks.ts @@ -17,7 +17,7 @@ import { useEffect, useRef } from 'react'; import useAsyncFn from 'react-use/lib/useAsyncFn'; import useDebounce from 'react-use/lib/useDebounce'; -import { useSearch } from '../SearchContext'; +import { useSearch } from '@backstage/plugin-search-react'; /** * Utility hook for either asynchronously loading filter values from a given diff --git a/plugins/search/src/components/SearchModal/SearchModal.test.tsx b/plugins/search/src/components/SearchModal/SearchModal.test.tsx index c50d8af1eb..842f5fb401 100644 --- a/plugins/search/src/components/SearchModal/SearchModal.test.tsx +++ b/plugins/search/src/components/SearchModal/SearchModal.test.tsx @@ -21,7 +21,7 @@ import userEvent from '@testing-library/user-event'; import { configApiRef } from '@backstage/core-plugin-api'; import { ApiProvider, ConfigReader } from '@backstage/core-app-api'; import { rootRouteRef } from '../../plugin'; -import { searchApiRef } from '../../apis'; +import { searchApiRef } from '@backstage/plugin-search-react'; import { SearchModal } from './SearchModal'; diff --git a/plugins/search/src/components/SearchModal/SearchModal.tsx b/plugins/search/src/components/SearchModal/SearchModal.tsx index 67b99e0926..55fd0cb977 100644 --- a/plugins/search/src/components/SearchModal/SearchModal.tsx +++ b/plugins/search/src/components/SearchModal/SearchModal.tsx @@ -31,7 +31,10 @@ import { makeStyles } from '@material-ui/core/styles'; import { SearchBar } from '../SearchBar'; import { DefaultResultListItem } from '../DefaultResultListItem'; import { SearchResult } from '../SearchResult'; -import { SearchContextProvider, useSearch } from '../SearchContext'; +import { + SearchContextProvider, + useSearch, +} from '@backstage/plugin-search-react'; import { SearchResultPager } from '../SearchResultPager'; import { useRouteRef } from '@backstage/core-plugin-api'; import { Link, useContent } from '@backstage/core-components'; diff --git a/plugins/search/src/components/SearchPage/SearchPage.test.tsx b/plugins/search/src/components/SearchPage/SearchPage.test.tsx index 9486196584..59e6e99aaf 100644 --- a/plugins/search/src/components/SearchPage/SearchPage.test.tsx +++ b/plugins/search/src/components/SearchPage/SearchPage.test.tsx @@ -17,7 +17,7 @@ import { renderInTestApp } from '@backstage/test-utils'; import React from 'react'; import { useLocation, useOutlet } from 'react-router'; -import { useSearch } from '../SearchContext'; +import { useSearch } from '@backstage/plugin-search-react'; import { SearchPage } from './SearchPage'; jest.mock('react-router', () => ({ @@ -33,8 +33,8 @@ const setTypesMock = jest.fn(); const setFiltersMock = jest.fn(); const setPageCursorMock = jest.fn(); -jest.mock('../SearchContext', () => ({ - ...jest.requireActual('../SearchContext'), +jest.mock('@backstage/plugin-search-react', () => ({ + ...jest.requireActual('@backstage/plugin-search-react'), SearchContextProvider: jest .fn() .mockImplementation(({ children }) => children), @@ -51,7 +51,7 @@ jest.mock('../SearchContext', () => ({ })); jest.mock('../LegacySearchPage', () => ({ - ...jest.requireActual('../SearchContext'), + ...jest.requireActual('@backstage/plugin-search-react'), LegacySearchPage: jest.fn().mockReturnValue('LegacySearchPageMock'), })); diff --git a/plugins/search/src/components/SearchPage/SearchPage.tsx b/plugins/search/src/components/SearchPage/SearchPage.tsx index e4e1e49d57..29a22a6f5c 100644 --- a/plugins/search/src/components/SearchPage/SearchPage.tsx +++ b/plugins/search/src/components/SearchPage/SearchPage.tsx @@ -18,7 +18,10 @@ import React, { useEffect } from 'react'; import usePrevious from 'react-use/lib/usePrevious'; import qs from 'qs'; import { useLocation, useOutlet } from 'react-router'; -import { SearchContextProvider, useSearch } from '../SearchContext'; +import { + SearchContextProvider, + useSearch, +} from '@backstage/plugin-search-react'; import { JsonObject } from '@backstage/types'; import { LegacySearchPage } from '../LegacySearchPage'; diff --git a/plugins/search/src/components/SearchResult/SearchResult.test.tsx b/plugins/search/src/components/SearchResult/SearchResult.test.tsx index 43a9cdb022..d93eacaef0 100644 --- a/plugins/search/src/components/SearchResult/SearchResult.test.tsx +++ b/plugins/search/src/components/SearchResult/SearchResult.test.tsx @@ -17,11 +17,11 @@ import { renderInTestApp } from '@backstage/test-utils'; import { waitFor } from '@testing-library/react'; import React from 'react'; -import { useSearch } from '../SearchContext'; +import { useSearch } from '@backstage/plugin-search-react'; import { SearchResult } from './SearchResult'; -jest.mock('../SearchContext', () => ({ - ...jest.requireActual('../SearchContext'), +jest.mock('@backstage/plugin-search-react', () => ({ + ...jest.requireActual('@backstage/plugin-search-react'), useSearch: jest.fn().mockReturnValue({ result: {}, }), diff --git a/plugins/search/src/components/SearchResult/SearchResult.tsx b/plugins/search/src/components/SearchResult/SearchResult.tsx index d6ca9fd968..a62dddb924 100644 --- a/plugins/search/src/components/SearchResult/SearchResult.tsx +++ b/plugins/search/src/components/SearchResult/SearchResult.tsx @@ -21,7 +21,7 @@ import { } from '@backstage/core-components'; import { SearchResult } from '@backstage/plugin-search-common'; import React from 'react'; -import { useSearch } from '../SearchContext'; +import { useSearch } from '@backstage/plugin-search-react'; type Props = { children: (results: { results: SearchResult[] }) => JSX.Element; diff --git a/plugins/search/src/components/SearchResultPager/SearchResultPager.test.tsx b/plugins/search/src/components/SearchResultPager/SearchResultPager.test.tsx index f24a73d63e..b1cad8d748 100644 --- a/plugins/search/src/components/SearchResultPager/SearchResultPager.test.tsx +++ b/plugins/search/src/components/SearchResultPager/SearchResultPager.test.tsx @@ -18,11 +18,11 @@ import { renderInTestApp } from '@backstage/test-utils'; import { waitFor } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import React from 'react'; -import { useSearch } from '../SearchContext'; +import { useSearch } from '@backstage/plugin-search-react'; import { SearchResultPager } from './SearchResultPager'; -jest.mock('../SearchContext', () => ({ - ...jest.requireActual('../SearchContext'), +jest.mock('@backstage/plugin-search-react', () => ({ + ...jest.requireActual('@backstage/plugin-search-react'), useSearch: jest.fn().mockReturnValue({ result: {}, }), diff --git a/plugins/search/src/components/SearchResultPager/SearchResultPager.tsx b/plugins/search/src/components/SearchResultPager/SearchResultPager.tsx index 12f07530ef..6f4c8628a6 100644 --- a/plugins/search/src/components/SearchResultPager/SearchResultPager.tsx +++ b/plugins/search/src/components/SearchResultPager/SearchResultPager.tsx @@ -18,7 +18,7 @@ import { Button, makeStyles } from '@material-ui/core'; import ArrowBackIosIcon from '@material-ui/icons/ArrowBackIos'; import ArrowForwardIosIcon from '@material-ui/icons/ArrowForwardIos'; import React from 'react'; -import { useSearch } from '../SearchContext'; +import { useSearch } from '@backstage/plugin-search-react'; const useStyles = makeStyles(theme => ({ root: { diff --git a/plugins/search/src/components/SearchTracker/SearchTracker.tsx b/plugins/search/src/components/SearchTracker/SearchTracker.tsx index b9da9b5560..35cfa1ec38 100644 --- a/plugins/search/src/components/SearchTracker/SearchTracker.tsx +++ b/plugins/search/src/components/SearchTracker/SearchTracker.tsx @@ -16,7 +16,7 @@ import React, { useEffect } from 'react'; import { useAnalytics } from '@backstage/core-plugin-api'; -import { useSearch } from '../SearchContext'; +import { useSearch } from '@backstage/plugin-search-react'; /** * Capture search event on term change. diff --git a/plugins/search/src/components/SearchType/SearchType.Accordion.tsx b/plugins/search/src/components/SearchType/SearchType.Accordion.tsx index 57e6609bab..49f5cf74ca 100644 --- a/plugins/search/src/components/SearchType/SearchType.Accordion.tsx +++ b/plugins/search/src/components/SearchType/SearchType.Accordion.tsx @@ -15,7 +15,7 @@ */ import React, { cloneElement, Fragment, useEffect, useState } from 'react'; -import { useSearch } from '../SearchContext'; +import { useSearch } from '@backstage/plugin-search-react'; import { Accordion, AccordionSummary, diff --git a/plugins/search/src/components/SearchType/SearchType.Tabs.tsx b/plugins/search/src/components/SearchType/SearchType.Tabs.tsx index 09797ae8f5..fc0380e23a 100644 --- a/plugins/search/src/components/SearchType/SearchType.Tabs.tsx +++ b/plugins/search/src/components/SearchType/SearchType.Tabs.tsx @@ -15,7 +15,7 @@ */ import React, { useEffect } from 'react'; -import { useSearch } from '../SearchContext'; +import { useSearch } from '@backstage/plugin-search-react'; import { BackstageTheme } from '@backstage/theme'; import { makeStyles, Tab, Tabs } from '@material-ui/core'; diff --git a/plugins/search/src/components/SearchType/SearchType.test.tsx b/plugins/search/src/components/SearchType/SearchType.test.tsx index 94f6cf716c..a80782921f 100644 --- a/plugins/search/src/components/SearchType/SearchType.test.tsx +++ b/plugins/search/src/components/SearchType/SearchType.test.tsx @@ -18,7 +18,7 @@ import { useApi } from '@backstage/core-plugin-api'; import { render, screen, waitFor } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import React from 'react'; -import { SearchContextProvider } from '../SearchContext'; +import { SearchContextProvider } from '@backstage/plugin-search-react'; import { SearchType } from './SearchType'; jest.mock('@backstage/core-plugin-api', () => ({ diff --git a/plugins/search/src/components/SearchType/SearchType.tsx b/plugins/search/src/components/SearchType/SearchType.tsx index ba20e1db5d..79c3dda2b9 100644 --- a/plugins/search/src/components/SearchType/SearchType.tsx +++ b/plugins/search/src/components/SearchType/SearchType.tsx @@ -30,7 +30,7 @@ import { SearchTypeAccordionProps, } from './SearchType.Accordion'; import { SearchTypeTabs, SearchTypeTabsProps } from './SearchType.Tabs'; -import { useSearch } from '../SearchContext'; +import { useSearch } from '@backstage/plugin-search-react'; const useStyles = makeStyles(theme => ({ label: { diff --git a/plugins/search/src/plugin.ts b/plugins/search/src/plugin.ts index 9dda2a84bb..96e7bc1eed 100644 --- a/plugins/search/src/plugin.ts +++ b/plugins/search/src/plugin.ts @@ -14,7 +14,8 @@ * limitations under the License. */ -import { SearchClient, searchApiRef } from './apis'; +import { SearchClient } from './apis'; +import { searchApiRef } from '@backstage/plugin-search-react'; import { createApiFactory, createPlugin,