mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-08 06:25:45 +01:00
Merge branch 'develop' into feature/delete_branches
This commit is contained in:
@@ -42,6 +42,7 @@ class BackendErrorNotification extends React.Component<Props> {
|
||||
<div className="content">
|
||||
<p className="subtitle">{this.renderErrorName()}</p>
|
||||
<p>{this.renderErrorDescription()}</p>
|
||||
{this.renderAdditionalMessages()}
|
||||
<p>{this.renderViolations()}</p>
|
||||
{this.renderMetadata()}
|
||||
</div>
|
||||
@@ -51,7 +52,7 @@ class BackendErrorNotification extends React.Component<Props> {
|
||||
|
||||
renderErrorName = () => {
|
||||
const { error, t } = this.props;
|
||||
const translation = t("errors." + error.errorCode + ".displayName");
|
||||
const translation = t(`errors.${error.errorCode}.displayName`);
|
||||
if (translation === error.errorCode) {
|
||||
return error.message;
|
||||
}
|
||||
@@ -60,13 +61,32 @@ class BackendErrorNotification extends React.Component<Props> {
|
||||
|
||||
renderErrorDescription = () => {
|
||||
const { error, t } = this.props;
|
||||
const translation = t("errors." + error.errorCode + ".description");
|
||||
const translation = t(`errors.${error.errorCode}.description`);
|
||||
if (translation === error.errorCode) {
|
||||
return "";
|
||||
}
|
||||
return translation;
|
||||
};
|
||||
|
||||
renderAdditionalMessages = () => {
|
||||
const { error, t } = this.props;
|
||||
if (error.additionalMessages) {
|
||||
return (
|
||||
<>
|
||||
<hr />
|
||||
{error.additionalMessages
|
||||
.map(additionalMessage =>
|
||||
additionalMessage.key ? t(`errors.${additionalMessage.key}.description`) : additionalMessage.message
|
||||
)
|
||||
.map(message => (
|
||||
<p>{message}</p>
|
||||
))}
|
||||
<hr />
|
||||
</>
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
renderViolations = () => {
|
||||
const { error, t } = this.props;
|
||||
if (error.violations) {
|
||||
|
||||
@@ -31,6 +31,10 @@ export type Violation = {
|
||||
message: string;
|
||||
key?: string;
|
||||
};
|
||||
export type AdditionalMessage = {
|
||||
key?: string;
|
||||
message?: string;
|
||||
};
|
||||
|
||||
export type BackendErrorContent = {
|
||||
transactionId: string;
|
||||
@@ -39,6 +43,7 @@ export type BackendErrorContent = {
|
||||
url?: string;
|
||||
context: Context;
|
||||
violations: Violation[];
|
||||
additionalMessages?: AdditionalMessage[];
|
||||
};
|
||||
|
||||
export class BackendError extends Error {
|
||||
@@ -48,6 +53,7 @@ export class BackendError extends Error {
|
||||
context: Context = [];
|
||||
statusCode: number;
|
||||
violations: Violation[];
|
||||
additionalMessages?: AdditionalMessage[];
|
||||
|
||||
constructor(content: BackendErrorContent, name: string, statusCode: number) {
|
||||
super(content.message);
|
||||
@@ -58,6 +64,7 @@ export class BackendError extends Error {
|
||||
this.context = content.context;
|
||||
this.statusCode = statusCode;
|
||||
this.violations = content.violations;
|
||||
this.additionalMessages = content.additionalMessages;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user