= ({ indexPattern, indexPatternName, stepInfo }) => (
diff --git a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_time_field/step_time_field.tsx b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_time_field/step_time_field.tsx
index 019a3d98b71..2ef8806191a 100644
--- a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_time_field/step_time_field.tsx
+++ b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/components/step_time_field/step_time_field.tsx
@@ -48,6 +48,7 @@ import { ActionButtons } from './components/action_buttons';
import { context } from '../../../../../../opensearch_dashboards_react/public';
import { DataSourceRef, IndexPatternManagmentContextValue } from '../../../../types';
import { IndexPatternCreationConfig } from '../../../..';
+import { StepInfo } from '../../types';
interface StepTimeFieldProps {
indexPattern: string;
@@ -56,6 +57,7 @@ interface StepTimeFieldProps {
indexPatternCreationType: IndexPatternCreationConfig;
selectedTimeField?: string;
dataSourceRef?: DataSourceRef;
+ stepInfo: StepInfo;
}
interface StepTimeFieldState {
@@ -220,7 +222,7 @@ export class StepTimeField extends Component 0
@@ -256,7 +258,11 @@ export class StepTimeField extends Component
-
+
;
}
@@ -283,7 +292,7 @@ export class CreateIndexPatternWizard extends Component<
{header}
-
+
);
}
@@ -307,6 +316,7 @@ export class CreateIndexPatternWizard extends Component<
this.state.step === INDEX_PATTERN_STEP
}
dataSourceRef={dataSourceRef}
+ stepInfo={stepInfo}
/>
);
@@ -324,6 +334,7 @@ export class CreateIndexPatternWizard extends Component<
indexPatternCreationType={this.state.indexPatternCreationType}
selectedTimeField={this.state.selectedTimeField}
dataSourceRef={dataSourceRef}
+ stepInfo={stepInfo}
/>
);
diff --git a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/lib/creation_flow.test.ts b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/lib/creation_flow.test.ts
new file mode 100644
index 00000000000..639357cb996
--- /dev/null
+++ b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/lib/creation_flow.test.ts
@@ -0,0 +1,44 @@
+/*
+ * Copyright OpenSearch Contributors
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+import {
+ DATA_SOURCE_STEP,
+ getInitialStepName,
+ getNextStep,
+ getPrevStep,
+ getTotalStepNumber,
+ INDEX_PATTERN_STEP,
+ TIME_FIELD_STEP,
+} from './creation_flow';
+
+describe('getInitialStepName', () => {
+ it('should get correct first step base on different flow', () => {
+ expect(getInitialStepName(false)).toEqual(INDEX_PATTERN_STEP);
+ expect(getInitialStepName(true)).toEqual(DATA_SOURCE_STEP);
+ });
+});
+
+describe('getTotalStepNumber', () => {
+ it('should get correct total number base on different flow', () => {
+ expect(getTotalStepNumber(false)).toEqual(2);
+ expect(getTotalStepNumber(true)).toEqual(3);
+ });
+});
+
+describe('getNextStep', () => {
+ it('should get correct next step base on different flow', () => {
+ expect(getNextStep(INDEX_PATTERN_STEP, false)).toEqual(TIME_FIELD_STEP);
+ expect(getNextStep(INDEX_PATTERN_STEP, true)).toEqual(TIME_FIELD_STEP);
+ expect(getNextStep(DATA_SOURCE_STEP, true)).toEqual(INDEX_PATTERN_STEP);
+ });
+});
+
+describe('getPrevStep', () => {
+ it('should get correct previous step base on different flow', () => {
+ expect(getPrevStep(TIME_FIELD_STEP, false)).toEqual(INDEX_PATTERN_STEP);
+ expect(getPrevStep(INDEX_PATTERN_STEP, true)).toEqual(DATA_SOURCE_STEP);
+ expect(getPrevStep(INDEX_PATTERN_STEP, false)).toEqual(null);
+ });
+});
diff --git a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/lib/creation_flow.ts b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/lib/creation_flow.ts
index c8fe6bcb2ee..86a1deaf645 100644
--- a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/lib/creation_flow.ts
+++ b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/lib/creation_flow.ts
@@ -38,43 +38,42 @@ DEFAULT_CREATION_FLOW_MAP.set(TIME_FIELD_STEP, {
export type StepType = 'INDEX_PATTERN_STEP' | 'TIME_FIELD_STEP' | 'DATA_SOURCE_STEP';
-export const getInitialStepName = (supportsDataSource: boolean) => {
- if (supportsDataSource) {
+export const getInitialStepName = (dataSourceEnabled: boolean) => {
+ if (dataSourceEnabled) {
return DATA_SOURCE_STEP;
}
return INDEX_PATTERN_STEP;
};
-export const getNextStep = (
- currentStep: StepType,
- supportsDataSource: boolean
-): StepType | null => {
- if (supportsDataSource) {
+export const getNextStep = (currentStep: StepType, dataSourceEnabled: boolean): StepType | null => {
+ if (dataSourceEnabled) {
return CREATION_FLOW_WITH_DATA_SOURCE_MAP.get(currentStep).next;
}
return DEFAULT_CREATION_FLOW_MAP.get(currentStep).next;
};
-export const getPrevStep = (
- currentStep: StepType,
- supportsDataSource: boolean
-): StepType | null => {
- if (supportsDataSource) {
+export const getPrevStep = (currentStep: StepType, dataSourceEnabled: boolean): StepType | null => {
+ if (dataSourceEnabled) {
return CREATION_FLOW_WITH_DATA_SOURCE_MAP.get(currentStep).prev;
}
- return CREATION_FLOW_WITH_DATA_SOURCE_MAP.get(currentStep).prev;
+ return DEFAULT_CREATION_FLOW_MAP.get(currentStep).prev;
};
-export const getCurrentStepNumber = (
- currentStep: StepType,
- supportsDataSource: boolean
-): number => {
- if (supportsDataSource) {
+export const getCurrentStepNumber = (currentStep: StepType, dataSourceEnabled: boolean): number => {
+ if (dataSourceEnabled) {
return CREATION_FLOW_WITH_DATA_SOURCE_MAP.get(currentStep).stepNumber;
}
- return CREATION_FLOW_WITH_DATA_SOURCE_MAP.get(currentStep).stepNumber;
+ return DEFAULT_CREATION_FLOW_MAP.get(currentStep).stepNumber;
+};
+
+export const getTotalStepNumber = (dataSourceEnabled: boolean): number => {
+ if (dataSourceEnabled) {
+ return CREATION_FLOW_WITH_DATA_SOURCE_MAP.size;
+ }
+
+ return DEFAULT_CREATION_FLOW_MAP.size;
};
diff --git a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/types.ts b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/types.ts
index b427a0e6fa6..9705bbc4b3e 100644
--- a/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/types.ts
+++ b/src/plugins/index_pattern_management/public/components/create_index_pattern_wizard/types.ts
@@ -79,3 +79,8 @@ export interface Tag {
key: string;
color: string;
}
+
+export interface StepInfo {
+ totalStepNumber: number;
+ currentStepNumber: number;
+}