diff --git a/x-pack/solutions/search/plugins/search_playground/public/components/setup_page/create_index_button.test.tsx b/x-pack/solutions/search/plugins/search_playground/public/components/setup_page/create_index_button.test.tsx index ed9799abc2578..e96a7d3240aba 100644 --- a/x-pack/solutions/search/plugins/search_playground/public/components/setup_page/create_index_button.test.tsx +++ b/x-pack/solutions/search/plugins/search_playground/public/components/setup_page/create_index_button.test.tsx @@ -18,11 +18,9 @@ jest.mock('../../hooks/use_kibana', () => ({ application: { navigateToUrl: jest.fn(), }, - share: { - url: { - locators: { - get: jest.fn().mockReturnValue(undefined), - }, + chrome: { + navLinks: { + get: jest.fn().mockReturnValue(undefined), }, }, }, @@ -38,13 +36,13 @@ const Wrapper: FC> = ({ children }) => { }; describe('CreateIndexButton', () => { - it('renders correctly when there is no locator', async () => { + it('renders correctly when there is no link to indices', async () => { const { queryByTestId } = render(, { wrapper: Wrapper }); expect(queryByTestId('createIndexButton')).not.toBeInTheDocument(); }); - it('renders correctly when there is a locator', async () => { + it('renders correctly when navlink exists', async () => { const navigateToUrl = jest.fn(); (useKibana as unknown as jest.Mock).mockImplementation(() => ({ @@ -52,14 +50,11 @@ describe('CreateIndexButton', () => { application: { navigateToUrl, }, - share: { - url: { - locators: { - get: jest.fn().mockReturnValue({ - getUrl: jest.fn().mockReturnValue('mock-url'), - getRedirectUrl: jest.fn().mockReturnValue('mock-shown-url'), - }), - }, + chrome: { + navLinks: { + get: jest.fn().mockReturnValue({ + url: 'mock-url', + }), }, }, }, diff --git a/x-pack/solutions/search/plugins/search_playground/public/components/setup_page/create_index_button.tsx b/x-pack/solutions/search/plugins/search_playground/public/components/setup_page/create_index_button.tsx index 0d12e58c22eed..ad30d0a0edc8f 100644 --- a/x-pack/solutions/search/plugins/search_playground/public/components/setup_page/create_index_button.tsx +++ b/x-pack/solutions/search/plugins/search_playground/public/components/setup_page/create_index_button.tsx @@ -5,44 +5,43 @@ * 2.0. */ +import React, { useCallback } from 'react'; import { EuiButton, EuiCallOut } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n-react'; -import React, { useCallback, useMemo } from 'react'; +import { SEARCH_INDICES, SEARCH_INDICES_CREATE_INDEX } from '@kbn/deeplinks-search/constants'; import { i18n } from '@kbn/i18n'; import { useKibana } from '../../hooks/use_kibana'; export const CreateIndexButton: React.FC = () => { const { - services: { application, share }, + services: { application, chrome }, } = useKibana(); - const createIndexLocator = useMemo( - () => share.url.locators.get('SEARCH_CREATE_INDEX'), - [share.url.locators] - ); + const createIndexUrl = chrome.navLinks.get( + `${SEARCH_INDICES}:${SEARCH_INDICES_CREATE_INDEX}` + )?.url; const handleCreateIndexClick = useCallback( - async (event: React.MouseEvent) => { + (event: React.MouseEvent) => { event.preventDefault(); - if (!createIndexLocator) { + if (!createIndexUrl) { return; } - const url = await createIndexLocator.getUrl({}); - application?.navigateToUrl(url); + application?.navigateToUrl(createIndexUrl); }, - [application, createIndexLocator] + [application, createIndexUrl] ); - return createIndexLocator ? ( + return createIndexUrl ? ( // eslint-disable-next-line @elastic/eui/href-or-on-click