in frontend/src/old-pages/Configure/errorsToFlashbarItems.ts [36:109]
export function errorsToFlashbarItems(
errors: CreateErrors,
setFlashbarItems: React.Dispatch<
React.SetStateAction<FlashbarProps.MessageDefinition[]>
>,
) {
let items: FlashbarProps.MessageDefinition[] = []
if (!errors) return items
const success = errors.message && errors.message.includes('succeeded')
const configErrors =
errors.configurationValidationErrors || errors.validationMessages
const updateErrors = errors.updateValidationErrors
if (success) {
items.push(
dismissableMessage(
{
type: 'success',
header: i18next.t('wizard.create.flashBar.success'),
content: errors.message,
id: 'success',
},
setFlashbarItems,
),
)
}
configErrors?.forEach((error: ConfigError, index: number) => {
items.push(
dismissableMessage(
{
type: error.level.toLowerCase() as FlashbarProps.Type,
header: capitalize(error.level.toLowerCase()),
content: `${error.type}: ${error.message}`,
id: `config-err-${index}`,
},
setFlashbarItems,
),
)
})
updateErrors?.forEach((error: UpdateError, index: number) => {
items.push(
dismissableMessage(
{
type: 'error',
header: i18next.t('wizard.create.flashBar.error'),
content: error.message,
id: `update-err-${index}`,
},
setFlashbarItems,
),
)
})
if (items.length === 0 && !success) {
items.push(
dismissableMessage(
{
type: 'error',
header: i18next.t('wizard.create.flashBar.error'),
content: errors.message,
id: 'config-err-0',
},
setFlashbarItems,
),
)
}
items.sort(compareFlashbarItems)
return items
}