|
|
|
@ -1,6 +1,6 @@ |
|
|
|
/* eslint-disable react/no-array-index-key */ |
|
|
|
/* eslint-disable react/no-array-index-key */ |
|
|
|
import React, { useContext, useState, useEffect } from 'react'; |
|
|
|
import React, { useContext, useState, useEffect } from 'react'; |
|
|
|
import { Typography, Tag, Input } from 'antd'; |
|
|
|
import { Typography, Tag } from 'antd'; |
|
|
|
|
|
|
|
|
|
|
|
import { ServerStatusContext } from '../../../utils/server-status-context'; |
|
|
|
import { ServerStatusContext } from '../../../utils/server-status-context'; |
|
|
|
import { FIELD_PROPS_TAGS, RESET_TIMEOUT, postConfigUpdateToAPI } from './constants'; |
|
|
|
import { FIELD_PROPS_TAGS, RESET_TIMEOUT, postConfigUpdateToAPI } from './constants'; |
|
|
|
@ -18,10 +18,9 @@ import { |
|
|
|
const { Title } = Typography; |
|
|
|
const { Title } = Typography; |
|
|
|
|
|
|
|
|
|
|
|
export default function EditInstanceTags() { |
|
|
|
export default function EditInstanceTags() { |
|
|
|
const [newTagInput, setNewTagInput] = useState(''); |
|
|
|
const [newTagInput, setNewTagInput] = useState<string | number>(''); |
|
|
|
const [fieldStatus, setFieldStatus] = useState<StatusState>(null); |
|
|
|
const [fieldStatus, setFieldStatus] = useState<StatusState>(null); |
|
|
|
// const [submitStatus, setSubmitStatus] = useState(null);
|
|
|
|
|
|
|
|
// const [submitStatusMessage, setSubmitStatusMessage] = useState('');
|
|
|
|
|
|
|
|
const serverStatusData = useContext(ServerStatusContext); |
|
|
|
const serverStatusData = useContext(ServerStatusContext); |
|
|
|
const { serverConfig, setFieldInConfigState } = serverStatusData || {}; |
|
|
|
const { serverConfig, setFieldInConfigState } = serverStatusData || {}; |
|
|
|
|
|
|
|
|
|
|
|
@ -39,8 +38,6 @@ export default function EditInstanceTags() { |
|
|
|
}, []); |
|
|
|
}, []); |
|
|
|
|
|
|
|
|
|
|
|
const resetStates = () => { |
|
|
|
const resetStates = () => { |
|
|
|
// setSubmitStatus(null);
|
|
|
|
|
|
|
|
// setSubmitStatusMessage('');
|
|
|
|
|
|
|
|
setFieldStatus(null); |
|
|
|
setFieldStatus(null); |
|
|
|
resetTimer = null; |
|
|
|
resetTimer = null; |
|
|
|
clearTimeout(resetTimer); |
|
|
|
clearTimeout(resetTimer); |
|
|
|
@ -56,17 +53,11 @@ export default function EditInstanceTags() { |
|
|
|
onSuccess: () => { |
|
|
|
onSuccess: () => { |
|
|
|
setFieldInConfigState({ fieldName: 'tags', value: postValue, path: configPath }); |
|
|
|
setFieldInConfigState({ fieldName: 'tags', value: postValue, path: configPath }); |
|
|
|
setFieldStatus(createInputStatus(STATUS_SUCCESS, 'Tags updated.')); |
|
|
|
setFieldStatus(createInputStatus(STATUS_SUCCESS, 'Tags updated.')); |
|
|
|
|
|
|
|
|
|
|
|
// setSubmitStatus('success');
|
|
|
|
|
|
|
|
// setSubmitStatusMessage('Tags updated.');
|
|
|
|
|
|
|
|
setNewTagInput(''); |
|
|
|
setNewTagInput(''); |
|
|
|
resetTimer = setTimeout(resetStates, RESET_TIMEOUT); |
|
|
|
resetTimer = setTimeout(resetStates, RESET_TIMEOUT); |
|
|
|
}, |
|
|
|
}, |
|
|
|
onError: (message: string) => { |
|
|
|
onError: (message: string) => { |
|
|
|
setFieldStatus(createInputStatus(STATUS_ERROR, message)); |
|
|
|
setFieldStatus(createInputStatus(STATUS_ERROR, message)); |
|
|
|
|
|
|
|
|
|
|
|
// setSubmitStatus('error');
|
|
|
|
|
|
|
|
// setSubmitStatusMessage(message);
|
|
|
|
|
|
|
|
resetTimer = setTimeout(resetStates, RESET_TIMEOUT); |
|
|
|
resetTimer = setTimeout(resetStates, RESET_TIMEOUT); |
|
|
|
}, |
|
|
|
}, |
|
|
|
}); |
|
|
|
}); |
|
|
|
@ -76,9 +67,6 @@ export default function EditInstanceTags() { |
|
|
|
if (!fieldStatus) { |
|
|
|
if (!fieldStatus) { |
|
|
|
setFieldStatus(null); |
|
|
|
setFieldStatus(null); |
|
|
|
} |
|
|
|
} |
|
|
|
// if (submitStatusMessage !== '') {
|
|
|
|
|
|
|
|
// setSubmitStatusMessage('');
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
setNewTagInput(value); |
|
|
|
setNewTagInput(value); |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
@ -88,14 +76,10 @@ export default function EditInstanceTags() { |
|
|
|
const newTag = newTagInput.trim(); |
|
|
|
const newTag = newTagInput.trim(); |
|
|
|
if (newTag === '') { |
|
|
|
if (newTag === '') { |
|
|
|
setFieldStatus(createInputStatus(STATUS_WARNING, 'Please enter a tag')); |
|
|
|
setFieldStatus(createInputStatus(STATUS_WARNING, 'Please enter a tag')); |
|
|
|
|
|
|
|
|
|
|
|
// setSubmitStatusMessage('Please enter a tag');
|
|
|
|
|
|
|
|
return; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
if (tags.some(tag => tag.toLowerCase() === newTag.toLowerCase())) { |
|
|
|
if (tags.some(tag => tag.toLowerCase() === newTag.toLowerCase())) { |
|
|
|
setFieldStatus(createInputStatus(STATUS_WARNING, 'This tag is already used!')); |
|
|
|
setFieldStatus(createInputStatus(STATUS_WARNING, 'This tag is already used!')); |
|
|
|
|
|
|
|
|
|
|
|
// setSubmitStatusMessage('This tag is already used!');
|
|
|
|
|
|
|
|
return; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -110,11 +94,6 @@ export default function EditInstanceTags() { |
|
|
|
postUpdateToAPI(updatedTags); |
|
|
|
postUpdateToAPI(updatedTags); |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// const {
|
|
|
|
|
|
|
|
// icon: newStatusIcon = null,
|
|
|
|
|
|
|
|
// message: newStatusMessage = '',
|
|
|
|
|
|
|
|
// } = fieldStatus || {};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return ( |
|
|
|
return ( |
|
|
|
<div className="tag-editor-container"> |
|
|
|
<div className="tag-editor-container"> |
|
|
|
<Title level={3}>Add Tags</Title> |
|
|
|
<Title level={3}>Add Tags</Title> |
|
|
|
@ -132,9 +111,7 @@ export default function EditInstanceTags() { |
|
|
|
); |
|
|
|
); |
|
|
|
})} |
|
|
|
})} |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
{/* <div className={`status-message ${submitStatus || ''}`}> |
|
|
|
|
|
|
|
{newStatusIcon} {newStatusMessage} {submitStatusMessage} |
|
|
|
|
|
|
|
</div> */} |
|
|
|
|
|
|
|
<div className="add-new-tag-section"> |
|
|
|
<div className="add-new-tag-section"> |
|
|
|
<TextField |
|
|
|
<TextField |
|
|
|
fieldName="tag-input" |
|
|
|
fieldName="tag-input" |
|
|
|
@ -145,7 +122,6 @@ export default function EditInstanceTags() { |
|
|
|
maxLength={maxLength} |
|
|
|
maxLength={maxLength} |
|
|
|
placeholder={placeholder} |
|
|
|
placeholder={placeholder} |
|
|
|
status={fieldStatus} |
|
|
|
status={fieldStatus} |
|
|
|
// message={`${newStatusIcon} ${newStatusMessage} ${submitStatusMessage}`}
|
|
|
|
|
|
|
|
/> |
|
|
|
/> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|