import { extend } from 'lodash'; import React from 'react'; import type { IParameter, IPipeline } from '../../../domain'; import { Parameters } from '../parameters/Parameters'; export interface IParametersPageContentProps { pipeline: IPipeline; updatePipelineConfig: (changes: Partial) => void; } export function ParametersPageContent(props: IParametersPageContentProps) { const { pipeline, updatePipelineConfig } = props; function addParameter() { const parameterConfig = pipeline.parameterConfig || []; const updatedParameterConfig = parameterConfig.concat({ name: '', label: '', required: false, pinned: false, description: '', default: '', hasOptions: false, options: [{ value: '' }], }); updatePipelineConfig({ parameterConfig: updatedParameterConfig }); } function removeParameter(index: number): void { const parameterConfig = pipeline.parameterConfig.slice(0); parameterConfig.splice(index, 1); updatePipelineConfig({ parameterConfig }); } function updateParameter(index: number, changes: Partial): void { const parameterConfig = pipeline.parameterConfig.slice(0); extend(parameterConfig[index], changes); updatePipelineConfig({ parameterConfig }); } function updateAllParameters(parameters: IParameter[]): void { const parameterConfig = parameters.slice(0); updatePipelineConfig({ parameterConfig }); } return ( ); }