// Copyright (C) 2020-2021 Intel Corporation
//
// SPDX-License-Identifier: MIT
import React, { useState } from 'react';
import Button from 'antd/lib/button';
import Modal from 'antd/lib/modal';
import Text from 'antd/lib/typography/Text';
import { Row, Col } from 'antd/lib/grid';
import patterns from 'utils/validation-patterns';
interface Props {
instance: any;
onChange: (bugTracker: string) => void;
}
export default function BugTrackerEditorComponent(props: Props): JSX.Element {
const { instance, onChange } = props;
const [bugTracker, setBugTracker] = useState(instance.bugTracker);
const [bugTrackerEditing, setBugTrackerEditing] = useState(false);
const instanceType = Array.isArray(instance.tasks) ? 'project' : 'task';
let shown = false;
const onStart = (): void => setBugTrackerEditing(true);
const onChangeValue = (value: string): void => {
if (value && !patterns.validateURL.pattern.test(value)) {
if (!shown) {
Modal.error({
title: `Could not update the ${instanceType} ${instance.id}`,
content: 'Issue tracker is expected to be URL',
onOk: () => {
shown = false;
},
className: 'cvat-modal-issue-tracker-update-task-fail',
});
shown = true;
}
} else {
setBugTracker(value);
setBugTrackerEditing(false);
onChange(value);
}
};
if (bugTracker) {
return (
Issue Tracker
{bugTracker}
);
}
return (
Issue Tracker
{bugTrackerEditing ? '' : 'Not specified'}
);
}