diff --git a/webui/src/features/mail/MailBouncePage.tsx b/webui/src/features/mail/MailBouncePage.tsx index 3720d85..9544336 100644 --- a/webui/src/features/mail/MailBouncePage.tsx +++ b/webui/src/features/mail/MailBouncePage.tsx @@ -1,6 +1,6 @@ import { useEffect, useMemo, useState } from "react"; import { ArrowLeft, Plus, RefreshCw, RotateCw, Trash2 } from "lucide-react"; -import { +import { FormGrid, ContentGrid, ActionBlockerHint, Button, Card, @@ -208,19 +208,19 @@ export default function MailBouncePage({ settings }: { settings: ApiSettings }) {error && {error}} {message && {message}} -
+ source.id} emptyText="No bounce mailbox watchers configured." /> item.id} emptyText="No bounce observations recorded." /> -
+
!busy && setAddOpen(false)} footer={<>}> -
+ {imapProfiles.length === 0 && setFolder(event.target.value)} placeholder="INBOX" /> -
+
{error}} {success && {success}} - !busy && closeProfileEditor()} - className="admin-dialog admin-dialog-wide mail-profile-dialog" + className="mail-profile-dialog" closeDisabled={busy} footer={editing === "new" ? <> @@ -1343,7 +1343,7 @@ function ProfileForm({ documentation={MAIL_PROFILE_DOCUMENTATION} /> } {showProfileFields && -
+ setDraft({ ...draft, name: event.target.value })} /> setDraft({ ...draft, slug: event.target.value })} placeholder="i18n:govoplan-mail.generated_from_name.33d69a91" /> @@ -1355,7 +1355,7 @@ function ProfileForm({ onChange={(checked) => setDraft({ ...draft, inheritToLowerScopes: checked })} label="Visible to lower scopes" />
- + } {editTarget.kind === "profile" && existingProfile && @@ -1363,7 +1363,7 @@ function ProfileForm({ } {editTarget.kind === "server" && -
+ setDraft({ ...draft, serverName: event.target.value })} /> @@ -1387,11 +1387,11 @@ function ProfileForm({ onChange={(checked) => setDraft({ ...draft, serverInheritToLowerScopes: checked })} label="Visible to lower scopes" />
- + } {editTarget.kind === "credentials" && -
+ {creatingCredential && selectProfile(event.target.value)}> @@ -415,8 +415,8 @@ export default function MailboxPage({ settings, auth }: { settings: ApiSettings; {imapProfiles.map((profile) => )} - {selectedProfile?.imap ? transportLabel(selectedProfile) : "i18n:govoplan-mail.no_imap_profile_selected.e7d1516f"} -
+ {selectedProfile?.imap ? transportLabel(selectedProfile) : "i18n:govoplan-mail.no_imap_profile_selected.e7d1516f"} + {hasAnyScope(auth, ["mail:bounce:read", "mail:bounce:manage"]) && -
-
+ + {noImapProfiles &&