diff --git a/src/frontend/src/tables/settings/EmailTable.tsx b/src/frontend/src/tables/settings/EmailTable.tsx
index 8e8eeb089f..2ea50d835d 100644
--- a/src/frontend/src/tables/settings/EmailTable.tsx
+++ b/src/frontend/src/tables/settings/EmailTable.tsx
@@ -3,9 +3,9 @@ import { RowDeleteAction } from '@lib/components/RowActions';
import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { apiUrl } from '@lib/functions/Api';
import { t } from '@lingui/core/macro';
-import { Badge } from '@mantine/core';
-import { IconTestPipe } from '@tabler/icons-react';
-import { useCallback, useMemo, useState } from 'react';
+import { ActionIcon, Alert, Badge, Group, HoverCard } from '@mantine/core';
+import { IconExclamationCircle, IconTestPipe } from '@tabler/icons-react';
+import { type ReactNode, useCallback, useMemo, useState } from 'react';
import {
useCreateApiFormModal,
useDeleteApiFormModal
@@ -15,6 +15,28 @@ import { useUserState } from '../../states/UserState';
import { DateColumn } from '../ColumnRenderers';
import { InvenTreeTable } from '../InvenTreeTable';
+function EmailStatusBadge({
+ status
+}: {
+ status: any;
+}): ReactNode {
+ switch (status) {
+ case 'A':
+ return {t`Announced`};
+ case 'S':
+ return {t`Sent`};
+ case 'F':
+ return {t`Failed`};
+ case 'D':
+ return {t`Delivered`};
+ case 'R':
+ return {t`Read`};
+ case 'C':
+ return {t`Confirmed`};
+ }
+ return '-';
+}
+
export function EmailTable() {
const sendTestMail = useCreateApiFormModal({
url: ApiEndpoints.email_test,
@@ -73,21 +95,25 @@ export function EmailTable() {
title: t`Status`,
sortable: true,
render: (record: any) => {
- switch (record.status) {
- case 'A':
- return {t`Announced`};
- case 'S':
- return {t`Sent`};
- case 'F':
- return {t`Failed`};
- case 'D':
- return {t`Delivered`};
- case 'R':
- return {t`Read`};
- case 'C':
- return {t`Confirmed`};
- }
- return '-';
+ return (
+
+
+ {record.error_message && (
+
+
+
+
+
+
+
+
+ {record.error_message}
+
+
+
+ )}
+
+ );
},
switchable: true
},