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 | 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 1x 1x 1x 1x 1x 1x 1x 1x 1x 12x | /* * 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 produce from 'immer' import { cloneDeep, get, isEmpty, omit, set } from 'lodash-es' import React from 'react' import { useParams } from 'react-router-dom' import { DefaultNewStageId, DefaultNewStageName } from '@templates-library/components/TemplateStudio/StageTemplateCanvas/StageTemplateForm/StageTemplateForm' import { TemplatePipelineProvider } from '@pipeline/components/TemplatePipelineContext' import { StageTemplateCanvasWithRef } from '@templates-library/components/TemplateStudio/StageTemplateCanvas/StageTemplateCanvas' import type { PipelineInfoConfig } from 'services/cd-ng' import { TemplateContext } from '@templates-library/components/TemplateStudio/TemplateContext/TemplateContext' import type { TemplateFormRef } from '@templates-library/components/TemplateStudio/TemplateStudio' import { DefaultPipeline } from '@pipeline/components/PipelineStudio/PipelineContext/PipelineActions' import type { ProjectPathProps, GitQueryParams } from '@common/interfaces/RouteInterfaces' import { sanitize } from '@common/utils/JSONUtils' import { useQueryParams } from '@common/hooks' import { PipelineContextType } from '@pipeline/components/PipelineStudio/PipelineContext/PipelineContext' const StageTemplateCanvasWrapper = (_props: unknown, formikRef: TemplateFormRef) => { const { state: { template }, updateTemplate, isReadonly } = React.useContext(TemplateContext) const { accountId, projectIdentifier, orgIdentifier } = useParams<ProjectPathProps>() const { branch, repoIdentifier } = useQueryParams<GitQueryParams>() const pipeline = React.useMemo( () => produce({ ...DefaultPipeline }, draft => { Iif (!isEmpty(template.spec)) { set(draft, 'stages[0].stage', cloneDeep(template.spec)) set(draft, 'stages[0].stage.name', DefaultNewStageName) set(draft, 'stages[0].stage.identifier', DefaultNewStageId) } }), [template.spec] ) const onUpdatePipeline = async (pipelineConfig: PipelineInfoConfig) => { const stage = get(pipelineConfig, 'stages[0].stage') const processNode = omit(stage, 'name', 'identifier', 'description', 'tags') sanitize(processNode, { removeEmptyArray: false, removeEmptyObject: false, removeEmptyString: false }) set(template, 'spec', processNode) await updateTemplate(template) } Eif (pipeline) { return ( <TemplatePipelineProvider queryParams={{ accountIdentifier: accountId, orgIdentifier, projectIdentifier, repoIdentifier, branch }} initialValue={pipeline as PipelineInfoConfig} onUpdatePipeline={onUpdatePipeline} contextType={PipelineContextType.StageTemplate} isReadOnly={isReadonly} > <StageTemplateCanvasWithRef ref={formikRef} /> </TemplatePipelineProvider> ) } else { return <></> } } export const StageTemplateCanvasWrapperWithRef = React.forwardRef(StageTemplateCanvasWrapper) |