Skip to content

Commit

Permalink
fix(core/managed): supply references when updating constraints (#8485)
Browse files Browse the repository at this point in the history
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
  • Loading branch information
Erik Munson and mergify[bot] committed Aug 11, 2020
1 parent 6210976 commit 63e31d3
Show file tree
Hide file tree
Showing 3 changed files with 67 additions and 59 deletions.
1 change: 1 addition & 0 deletions app/scripts/modules/core/src/managed/ArtifactDetail.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,7 @@ const EnvironmentCards = memo(
key={constraint.type}
application={application}
environment={environmentName}
reference={reference}
version={versionDetails.version}
constraint={constraint}
/>
Expand Down
3 changes: 3 additions & 0 deletions app/scripts/modules/core/src/managed/ManagedWriter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ export interface IUpdateConstraintStatusRequest {
application: string;
environment: string;
type: string;
reference: string;
version: string;
status: StatefulConstraintStatus;
}
Expand Down Expand Up @@ -79,6 +80,7 @@ export class ManagedWriter {
application,
environment,
type,
reference,
version,
status,
}: IUpdateConstraintStatusRequest): IPromise<void> {
Expand All @@ -88,6 +90,7 @@ export class ManagedWriter {
.one('constraint')
.post({
type,
artifactReference: reference,
artifactVersion: version,
status,
});
Expand Down
122 changes: 63 additions & 59 deletions app/scripts/modules/core/src/managed/constraints/ConstraintCard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -73,67 +73,71 @@ const getCardAppearance = (constraint: IStatefulConstraint | IStatelessConstrain
export interface IConstraintCardProps {
application: Application;
environment: string;
reference: string;
version: string;
constraint: IStatefulConstraint | IStatelessConstraint;
}

export const ConstraintCard = memo(({ application, environment, version, constraint }: IConstraintCardProps) => {
const { type } = constraint;

const [actionStatus, setActionStatus] = useState<IRequestStatus>('NONE');

if (!isConstraintSupported(type)) {
logUnsupportedConstraintError(type);
return null;
}

const actions = getConstraintActions(constraint);

return (
<StatusCard
appearance={getCardAppearance(constraint)}
iconName={getConstraintIcon(type)}
title={getConstraintSummary(constraint)}
actions={
actions && (
<div
className={classNames('flex-container-h middle', {
'sp-group-margin-s-xaxis': actionStatus !== 'REJECTED',
})}
>
{actionStatus !== 'REJECTED' &&
actions.map(({ title, pass }) => {
return (
<Button
key={title + pass}
disabled={actionStatus === 'PENDING'}
onClick={() => {
setActionStatus('PENDING');
overrideConstraintStatus(application, {
environment,
type,
version,
status: pass ? OVERRIDE_PASS : OVERRIDE_FAIL,
})
.then(() => setActionStatus('RESOLVED'))
.catch(() => {
setActionStatus('REJECTED');
});
}}
>
{title}
</Button>
);
export const ConstraintCard = memo(
({ application, environment, reference, version, constraint }: IConstraintCardProps) => {
const { type } = constraint;

const [actionStatus, setActionStatus] = useState<IRequestStatus>('NONE');

if (!isConstraintSupported(type)) {
logUnsupportedConstraintError(type);
return null;
}

const actions = getConstraintActions(constraint);

return (
<StatusCard
appearance={getCardAppearance(constraint)}
iconName={getConstraintIcon(type)}
title={getConstraintSummary(constraint)}
actions={
actions && (
<div
className={classNames('flex-container-h middle', {
'sp-group-margin-s-xaxis': actionStatus !== 'REJECTED',
})}
{actionStatus === 'REJECTED' && (
<>
<span className="text-bold action-error-message sp-margin-l-right">Something went wrong</span>
<Button onClick={() => setActionStatus('NONE')}>Try again</Button>
</>
)}
</div>
)
}
/>
);
});
>
{actionStatus !== 'REJECTED' &&
actions.map(({ title, pass }) => {
return (
<Button
key={title + pass}
disabled={actionStatus === 'PENDING'}
onClick={() => {
setActionStatus('PENDING');
overrideConstraintStatus(application, {
environment,
type,
reference,
version,
status: pass ? OVERRIDE_PASS : OVERRIDE_FAIL,
})
.then(() => setActionStatus('RESOLVED'))
.catch(() => {
setActionStatus('REJECTED');
});
}}
>
{title}
</Button>
);
})}
{actionStatus === 'REJECTED' && (
<>
<span className="text-bold action-error-message sp-margin-l-right">Something went wrong</span>
<Button onClick={() => setActionStatus('NONE')}>Try again</Button>
</>
)}
</div>
)
}
/>
);
},
);

0 comments on commit 63e31d3

Please sign in to comment.