// 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'}
); }