Move repeated error message handling code into an include

pull/10144/head
Matt Westcott 2023-02-21 15:33:34 +00:00 zatwierdzone przez Matt Westcott
rodzic ff70382ebb
commit c66b86b756
5 zmienionych plików z 44 dodań i 45 usunięć

Wyświetl plik

@ -8,6 +8,10 @@ import {
} from './BaseSequenceBlock';
import { escapeHtml as h } from '../../../utils/text';
import { range } from '../../../utils/range';
import {
addErrorMessages,
removeErrorMessages,
} from '../../../includes/streamFieldErrors';
/* global $ */
@ -256,19 +260,10 @@ export class ListBlock extends BaseSequenceBlock {
// Non block errors
const container = this.container[0];
container
.querySelectorAll(':scope > .help-block.help-critical')
.forEach((element) => element.remove());
removeErrorMessages(container);
if (error.messages) {
// Add a help block for each error raised
error.messages.forEach((message) => {
const errorElement = document.createElement('p');
errorElement.classList.add('help-block');
errorElement.classList.add('help-critical');
errorElement.innerHTML = h(message);
container.insertBefore(errorElement, container.childNodes[0]);
});
addErrorMessages(container, error.messages);
}
if (error.blockErrors) {

Wyświetl plik

@ -18,6 +18,10 @@ import ComboBox, {
comboBoxTriggerLabel,
} from '../../ComboBox/ComboBox';
import { hideTooltipOnEsc } from '../../../includes/initTooltips';
import {
addErrorMessages,
removeErrorMessages,
} from '../../../includes/streamFieldErrors';
/* global $ */
@ -401,19 +405,10 @@ export class StreamBlock extends BaseSequenceBlock {
// Non block errors (messages applying to the block as a whole)
const container = this.container[0];
container
.querySelectorAll(':scope > .help-block.help-critical')
.forEach((element) => element.remove());
removeErrorMessages(container);
if (error.messages) {
// Add a help block for each error raised
error.messages.forEach((message) => {
const errorElement = document.createElement('p');
errorElement.classList.add('help-block');
errorElement.classList.add('help-critical');
errorElement.innerHTML = h(message);
container.insertBefore(errorElement, container.childNodes[0]);
});
addErrorMessages(container, error.messages);
}
if (error.blockErrors) {

Wyświetl plik

@ -2,6 +2,10 @@
import { escapeHtml as h } from '../../../utils/text';
import { hasOwn } from '../../../utils/hasOwn';
import {
addErrorMessages,
removeErrorMessages,
} from '../../../includes/streamFieldErrors';
export class StructBlock {
constructor(blockDef, placeholder, prefix, initialState, initialError) {
@ -90,21 +94,12 @@ export class StructBlock {
setError(error) {
if (!error) return;
// Non block errors
const container = this.container[0];
container
.querySelectorAll(':scope > .help-block.help-critical')
.forEach((element) => element.remove());
removeErrorMessages(container);
if (error.messages) {
// Add a help block for each error raised
error.messages.forEach((message) => {
const errorElement = document.createElement('p');
errorElement.classList.add('help-block');
errorElement.classList.add('help-critical');
errorElement.innerHTML = h(message);
container.insertBefore(errorElement, container.childNodes[0]);
});
addErrorMessages(container, error.messages);
}
if (error.blockErrors) {

Wyświetl plik

@ -3,6 +3,10 @@
import { escapeHtml as h } from '../../../utils/text';
import { range } from '../../../utils/range';
import {
addErrorMessages,
removeErrorMessages,
} from '../../../includes/streamFieldErrors';
export class TypedTableBlock {
constructor(blockDef, placeholder, prefix, initialState, initialError) {
@ -458,19 +462,10 @@ export class TypedTableBlock {
// Non block errors
const container = this.container[0];
container
.querySelectorAll(':scope > .help-block.help-critical')
.forEach((element) => element.remove());
removeErrorMessages(container);
if (error.messages) {
// Add a help block for each error raised
error.messages.forEach((message) => {
const errorElement = document.createElement('p');
errorElement.classList.add('help-block');
errorElement.classList.add('help-critical');
errorElement.innerHTML = h(message);
container.insertBefore(errorElement, container.childNodes[0]);
});
addErrorMessages(container, error.messages);
}
if (error.blockErrors) {

Wyświetl plik

@ -0,0 +1,19 @@
import { escapeHtml as h } from '../utils/text';
const removeErrorMessages = (container) => {
container
.querySelectorAll(':scope > .help-block.help-critical')
.forEach((element) => element.remove());
};
const addErrorMessages = (container, messages) => {
messages.forEach((message) => {
const errorElement = document.createElement('p');
errorElement.classList.add('help-block');
errorElement.classList.add('help-critical');
errorElement.innerHTML = h(message);
container.insertBefore(errorElement, container.childNodes[0]);
});
};
export { removeErrorMessages, addErrorMessages };