Fix: Log pipelines deployment status unknown (#3838)

* fix: fe: log pipelines: label and icon for deploy status 'UNKNOWN'

* fix: handle scenarios when response.payload?.pipelines is undefined (eg: post delete all)
This commit is contained in:
Raj Kamal Singh 2023-10-31 11:25:41 +05:30 committed by GitHub
parent 658a9cc11b
commit 4ca1e34378
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 6 deletions

View File

@ -3,6 +3,7 @@ import {
CloseCircleFilled, CloseCircleFilled,
ExclamationCircleFilled, ExclamationCircleFilled,
LoadingOutlined, LoadingOutlined,
MinusCircleFilled,
} from '@ant-design/icons'; } from '@ant-design/icons';
import { Spin } from 'antd'; import { Spin } from 'antd';
@ -16,6 +17,8 @@ export function getDeploymentStage(value: string): string {
return 'Dirty'; return 'Dirty';
case 'FAILED': case 'FAILED':
return 'Failed'; return 'Failed';
case 'UNKNOWN':
return 'Unknown';
default: default:
return ''; return '';
} }
@ -33,6 +36,8 @@ export function getDeploymentStageIcon(value: string): JSX.Element {
return <ExclamationCircleFilled />; return <ExclamationCircleFilled />;
case 'FAILED': case 'FAILED':
return <CloseCircleFilled />; return <CloseCircleFilled />;
case 'UNKNOWN':
return <MinusCircleFilled />;
default: default:
return <span />; return <span />;
} }

View File

@ -56,23 +56,23 @@ function PipelineListsView({
const [modal, contextHolder] = Modal.useModal(); const [modal, contextHolder] = Modal.useModal();
const { notifications } = useNotifications(); const { notifications } = useNotifications();
const [prevPipelineData, setPrevPipelineData] = useState<Array<PipelineData>>( const [prevPipelineData, setPrevPipelineData] = useState<Array<PipelineData>>(
cloneDeep(pipelineData?.pipelines), cloneDeep(pipelineData?.pipelines || []),
); );
const [currPipelineData, setCurrPipelineData] = useState<Array<PipelineData>>( const [currPipelineData, setCurrPipelineData] = useState<Array<PipelineData>>(
cloneDeep(pipelineData?.pipelines), cloneDeep(pipelineData?.pipelines || []),
); );
const [expandedPipelineId, setExpandedPipelineId] = useState< const [expandedPipelineId, setExpandedPipelineId] = useState<
string | undefined string | undefined
>(undefined); >(undefined);
const expandedPipelineData = useCallback( const expandedPipelineData = useCallback(
() => currPipelineData.find((p) => p.id === expandedPipelineId), () => currPipelineData?.find((p) => p.id === expandedPipelineId),
[currPipelineData, expandedPipelineId], [currPipelineData, expandedPipelineId],
); );
const setExpandedPipelineData = useCallback( const setExpandedPipelineData = useCallback(
(newData: PipelineData): void => { (newData: PipelineData): void => {
if (expandedPipelineId) { if (expandedPipelineId) {
const pipelineIdx = currPipelineData.findIndex( const pipelineIdx = currPipelineData?.findIndex(
(p) => p.id === expandedPipelineId, (p) => p.id === expandedPipelineId,
); );
if (pipelineIdx >= 0) { if (pipelineIdx >= 0) {
@ -359,8 +359,8 @@ function PipelineListsView({
refetchPipelineLists(); refetchPipelineLists();
setActionMode(ActionMode.Viewing); setActionMode(ActionMode.Viewing);
setShowSaveButton(undefined); setShowSaveButton(undefined);
setCurrPipelineData(response.payload?.pipelines); setCurrPipelineData(response.payload?.pipelines || []);
setPrevPipelineData(response.payload?.pipelines); setPrevPipelineData(response.payload?.pipelines || []);
} else { } else {
modifiedPipelineData.forEach((item: PipelineData) => { modifiedPipelineData.forEach((item: PipelineData) => {
const pipelineData = item; const pipelineData = item;