Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | 162x 162x 162x 162x 162x 1114x 1114x 157x 957x 1x 956x 956x 162x | /*
* Copyright 2021 Harness Inc. All rights reserved.
* Use of this source code is governed by the PolyForm Shield 1.0.0 license
* that can be found in the licenses directory at the root of this repository, also available at
* https://polyformproject.org/wp-content/uploads/2020/06/PolyForm-Shield-1.0.0.txt.
*/
import React from 'react'
import { MultiTypeInputType, Text } from '@wings-software/uicore'
import { String } from 'framework/strings'
import type { AbstractStepFactory } from './AbstractStepFactory'
import { StepViewType } from './Step'
import type { StepProps, StepFormikFowardRef } from './Step'
import type { StepType } from '../PipelineSteps/PipelineStepInterface'
export interface StepWidgetProps<T = unknown, U = unknown> extends Omit<StepProps<T, U>, 'path'> {
factory: AbstractStepFactory
type: StepType
isNewStep?: boolean
allValues?: T
template?: T
path?: string
// eslint-disable-next-line @typescript-eslint/no-explicit-any
onUpdate?: (data: any) => void
onChange?: (data: any) => void
readonly?: boolean
allowableTypes: MultiTypeInputType[]
}
export function StepWidget<T = unknown, U = unknown>(
{
factory,
type,
initialValues,
allValues,
template,
isNewStep = true,
path = '',
stepViewType = StepViewType.Edit,
onUpdate,
onChange,
readonly,
allowableTypes,
customStepProps
}: StepWidgetProps<T, U>,
formikRef: StepFormikFowardRef<T>
): JSX.Element | null {
const step = factory?.getStep<T>(type)
if (!step) {
return __DEV__ ? <Text intent="warning">Step not found</Text> : null
} else if (stepViewType === StepViewType.InputVariable && !step.hasStepVariables) {
return __DEV__ ? (
<Text intent="warning">
<String stringID="wip" />
</Text>
) : null
} else {
const values = step?.getDefaultValues(initialValues, stepViewType)
return (
<>
{step.renderStep({
initialValues: values,
formikRef,
onUpdate,
onChange,
isNewStep,
stepViewType,
inputSetData: { template, allValues, path, readonly },
factory,
readonly,
path,
customStepProps,
allowableTypes
})}
</>
)
}
}
export const StepWidgetWithFormikRef = React.forwardRef(StepWidget)
|