import { get, unset } from 'lodash'; import React from 'react'; import { Modal } from 'react-bootstrap'; import type { IPipeline } from '../../../../domain'; import { ModalClose } from '../../../../modal'; import type { IModalComponentProps } from '../../../../presentation'; import { PipelineConfigService } from '../../services/PipelineConfigService'; export interface IUnlockPipelineModalProps extends IModalComponentProps { pipeline: IPipeline; } export function UnlockPipelineModal(props: IUnlockPipelineModalProps) { const [errorMessage, setErrorMessage] = React.useState(null); const [saveError, setSaveError] = React.useState(false); const { closeModal, dismissModal, pipeline } = props; function unlockPipeline() { const newPipeline = { ...pipeline }; unset(newPipeline, 'locked'); PipelineConfigService.savePipeline(newPipeline).then( () => closeModal(), (response) => { setSaveError(true); setErrorMessage(get(response, 'data.message', 'No message provided')); }, ); } return ( <> {}}> Really Unlock Pipeline? {saveError && (

Could not unlock pipeline.

Reason: {errorMessage}

{ e.preventDefault(); setSaveError(false); }} > [dismiss]

)}

Are you sure you want to unlock and allow modifications to {pipeline.name}?

); }