mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 09:48:58 -04:00
[Enterprise Search] Mark guided onboarding data step as complete (#144118)
This commit is contained in:
parent
34dda3eacb
commit
2af99c1237
7 changed files with 28 additions and 3 deletions
|
@ -2,7 +2,7 @@
|
|||
"id": "enterpriseSearch",
|
||||
"version": "kibana",
|
||||
"kibanaVersion": "kibana",
|
||||
"requiredPlugins": ["features", "spaces", "security", "licensing", "data", "charts", "infra", "cloud", "esUiShared"],
|
||||
"requiredPlugins": ["features", "spaces", "security", "licensing", "data", "charts", "infra", "cloud", "esUiShared", "guidedOnboarding"],
|
||||
"configPath": ["enterpriseSearch"],
|
||||
"optionalPlugins": ["usageCollection", "home", "customIntegrations", "ml"],
|
||||
"server": true,
|
||||
|
|
|
@ -23,6 +23,7 @@ export const mockKibanaValues = {
|
|||
isCloudEnabled: false,
|
||||
deployment_url: 'https://cloud.elastic.co/deployments/some-id',
|
||||
},
|
||||
guidedOnboarding: {},
|
||||
history: mockHistory,
|
||||
isCloud: false,
|
||||
navigateToUrl: jest.fn(),
|
||||
|
|
|
@ -11,6 +11,8 @@ import { useParams } from 'react-router-dom';
|
|||
|
||||
import { useValues } from 'kea';
|
||||
|
||||
import useObservable from 'react-use/lib/useObservable';
|
||||
|
||||
import { EuiTabbedContent, EuiTabbedContentTab } from '@elastic/eui';
|
||||
|
||||
import { i18n } from '@kbn/i18n';
|
||||
|
@ -62,6 +64,20 @@ export const SearchIndex: React.FC = () => {
|
|||
|
||||
const { indexName } = useValues(IndexNameLogic);
|
||||
|
||||
/**
|
||||
* Guided Onboarding needs us to mark the add data step as complete as soon as the user has data in an index
|
||||
* Putting it here guarantees that if a user is viewing an index with data, it'll be marked as complete
|
||||
*/
|
||||
const { guidedOnboarding } = useValues(KibanaLogic);
|
||||
const isDataStepActive = useObservable(
|
||||
guidedOnboarding.guidedOnboardingApi!.isGuideStepActive$('search', 'add_data')
|
||||
);
|
||||
useEffect(() => {
|
||||
if (isDataStepActive && indexData?.count) {
|
||||
guidedOnboarding.guidedOnboardingApi?.completeGuideStep('search', 'add_data');
|
||||
}
|
||||
}, [isDataStepActive, indexData?.count]);
|
||||
|
||||
useEffect(() => {
|
||||
if (
|
||||
isConnectorIndex(indexData) &&
|
||||
|
|
|
@ -12,6 +12,7 @@ import { getContext } from 'kea';
|
|||
|
||||
import { chartPluginMock } from '@kbn/charts-plugin/public/mocks';
|
||||
import { coreMock } from '@kbn/core/public/mocks';
|
||||
import { guidedOnboardingMock } from '@kbn/guided-onboarding-plugin/public/mocks';
|
||||
import { licensingMock } from '@kbn/licensing-plugin/public/mocks';
|
||||
import { securityMock } from '@kbn/security-plugin/public/mocks';
|
||||
|
||||
|
@ -27,8 +28,9 @@ describe('renderApp', () => {
|
|||
params: coreMock.createAppMountParameters(),
|
||||
core: coreMock.createStart(),
|
||||
plugins: {
|
||||
licensing: licensingMock.createStart(),
|
||||
charts: chartPluginMock.createStartContract(),
|
||||
guidedOnboarding: guidedOnboardingMock.createStart(),
|
||||
licensing: licensingMock.createStart(),
|
||||
security: securityMock.createStart(),
|
||||
},
|
||||
} as any;
|
||||
|
|
|
@ -62,6 +62,7 @@ export const renderApp = (
|
|||
charts: plugins.charts,
|
||||
cloud: plugins.cloud,
|
||||
uiSettings: core.uiSettings,
|
||||
guidedOnboarding: plugins.guidedOnboarding,
|
||||
history: params.history,
|
||||
navigateToUrl: core.application.navigateToUrl,
|
||||
security: plugins.security,
|
||||
|
|
|
@ -18,6 +18,7 @@ import {
|
|||
ScopedHistory,
|
||||
IUiSettingsClient,
|
||||
} from '@kbn/core/public';
|
||||
import { GuidedOnboardingPluginStart } from '@kbn/guided-onboarding-plugin/public';
|
||||
import { SecurityPluginStart } from '@kbn/security-plugin/public';
|
||||
|
||||
import { ProductAccess } from '../../../../common/types';
|
||||
|
@ -41,6 +42,7 @@ interface KibanaLogicProps {
|
|||
renderHeaderActions(HeaderActions: FC): void;
|
||||
// Required plugins
|
||||
charts: ChartsPluginStart;
|
||||
guidedOnboarding: GuidedOnboardingPluginStart;
|
||||
security: SecurityPluginStart;
|
||||
uiSettings: IUiSettingsClient;
|
||||
// Optional plugins
|
||||
|
@ -59,6 +61,7 @@ export const KibanaLogic = kea<MakeLogicType<KibanaValues>>({
|
|||
config: [props.config || {}, {}],
|
||||
charts: [props.charts, {}],
|
||||
cloud: [props.cloud || {}, {}],
|
||||
guidedOnboarding: [props.guidedOnboarding, {}],
|
||||
history: [props.history, {}],
|
||||
navigateToUrl: [
|
||||
(url: string, options?: CreateHrefOptions) => {
|
||||
|
|
|
@ -18,6 +18,7 @@ import {
|
|||
AppNavLinkStatus,
|
||||
} from '@kbn/core/public';
|
||||
import { DataPublicPluginStart } from '@kbn/data-plugin/public';
|
||||
import { GuidedOnboardingPluginStart } from '@kbn/guided-onboarding-plugin/public';
|
||||
import type { HomePublicPluginSetup } from '@kbn/home-plugin/public';
|
||||
import { LicensingPluginStart } from '@kbn/licensing-plugin/public';
|
||||
import { SecurityPluginSetup, SecurityPluginStart } from '@kbn/security-plugin/public';
|
||||
|
@ -53,9 +54,10 @@ interface PluginsSetup {
|
|||
|
||||
export interface PluginsStart {
|
||||
cloud?: CloudSetup & CloudStart;
|
||||
licensing: LicensingPluginStart;
|
||||
charts: ChartsPluginStart;
|
||||
data: DataPublicPluginStart;
|
||||
guidedOnboarding: GuidedOnboardingPluginStart;
|
||||
licensing: LicensingPluginStart;
|
||||
security: SecurityPluginStart;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue