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 },