Implement leave announcement for banned members and enhance moderation notifications

- Added a `leaveAnnounceBan` field to the `WelcomeConfig` model, allowing for optional announcements in the leave channel when a member is banned.
- Updated the leave handling logic to check for bans and send a notice in the leave channel if the `leaveAnnounceBan` toggle is enabled.
- Enhanced moderation actions (kick and ban) to notify the affected user via DM with the reason for the action.
- Introduced a new `notifyModerationTargetDm` function to streamline DM notifications for moderation actions.
- Updated the WebUI to include a toggle for the `leaveAnnounceBan` feature, improving user configurability.
- Improved localization for new messages related to moderation notifications and leave announcements in both English and German.
- Documented changes in phase tracking to reflect the new leave announcement feature and moderation notification enhancements.
This commit is contained in:
TheOnlyMace
2026-07-25 17:50:18 +02:00
parent 03bb406d82
commit e2bab9cceb
16 changed files with 198 additions and 5 deletions

View File

@@ -252,6 +252,22 @@ export function WelcomeForm({ guildId, initialValue, previewVars }: WelcomeFormP
/>
</div>
</FieldAnchor>
<FieldAnchor id="field-leave-announce-ban">
<div className="flex items-center justify-between gap-4 rounded-md border border-border p-4">
<div className="space-y-1">
<Label>{t('modulePages.welcome.leaveAnnounceBanLabel')}</Label>
<p className="text-sm text-muted-foreground">
{t('modulePages.welcome.leaveAnnounceBanHint')}
</p>
</div>
<Switch
checked={value.leaveAnnounceBan}
onCheckedChange={(checked) =>
setValue((prev) => ({ ...prev, leaveAnnounceBan: checked }))
}
/>
</div>
</FieldAnchor>
<FieldAnchor id="field-leave-channel">
<div className="space-y-2">
<Label>{t('modulePages.welcome.leaveChannelId')}</Label>