Update placeholders in WelcomeForm and DiscordEmbedBuilder for improved user guidance

- Changed placeholder text in WelcomeForm to use more descriptive keys for leave content.
- Enhanced DiscordEmbedBuilder to accept custom title and description placeholders, improving flexibility for embed creation.
- Updated localization files in English and German to include new placeholder texts, ensuring consistency and clarity for users.
This commit is contained in:
TheOnlyMace
2026-07-22 22:19:16 +02:00
parent 8cfb149a18
commit e7a3162494
4 changed files with 20 additions and 6 deletions

View File

@@ -238,7 +238,7 @@ export function WelcomeForm({ guildId, initialValue }: WelcomeFormProps) {
<Textarea <Textarea
value={value.leaveContent ?? ''} value={value.leaveContent ?? ''}
onChange={(event) => setValue((prev) => ({ ...prev, leaveContent: event.target.value || null }))} onChange={(event) => setValue((prev) => ({ ...prev, leaveContent: event.target.value || null }))}
placeholder={t('modulePages.welcome.contentPlaceholder')} placeholder={t('modulePages.welcome.leaveContentPlaceholder')}
/> />
<PlaceholderHelp preset="welcome" /> <PlaceholderHelp preset="welcome" />
</div> </div>
@@ -251,6 +251,8 @@ export function WelcomeForm({ guildId, initialValue }: WelcomeFormProps) {
onChange={(leaveEmbed) => setValue((prev) => ({ ...prev, leaveEmbed }))} onChange={(leaveEmbed) => setValue((prev) => ({ ...prev, leaveEmbed }))}
previewVars={WELCOME_PREVIEW_VARS} previewVars={WELCOME_PREVIEW_VARS}
placeholderPreset="welcome" placeholderPreset="welcome"
titlePlaceholder={t('modulePages.welcome.leaveEmbedTitlePlaceholder')}
descriptionPlaceholder={t('modulePages.welcome.leaveEmbedDescriptionPlaceholder')}
/> />
</div> </div>
</FieldAnchor> </FieldAnchor>

View File

@@ -73,6 +73,10 @@ interface DiscordEmbedBuilderProps {
showClearHint?: boolean; showClearHint?: boolean;
/** Which placeholders apply to this embed context. */ /** Which placeholders apply to this embed context. */
placeholderPreset?: PlaceholderPresetId; placeholderPreset?: PlaceholderPresetId;
/** Override default embed title input placeholder. */
titlePlaceholder?: string;
/** Override default embed description input placeholder. */
descriptionPlaceholder?: string;
} }
export function DiscordEmbedBuilder({ export function DiscordEmbedBuilder({
@@ -81,7 +85,9 @@ export function DiscordEmbedBuilder({
className, className,
previewVars, previewVars,
showClearHint = true, showClearHint = true,
placeholderPreset = 'welcome' placeholderPreset = 'welcome',
titlePlaceholder,
descriptionPlaceholder
}: DiscordEmbedBuilderProps) { }: DiscordEmbedBuilderProps) {
const t = useTranslations(); const t = useTranslations();
const draft = value ?? emptyEmbed(); const draft = value ?? emptyEmbed();
@@ -112,7 +118,7 @@ export function DiscordEmbedBuilder({
id="embed-title" id="embed-title"
value={draft.title ?? ''} value={draft.title ?? ''}
maxLength={256} maxLength={256}
placeholder={t('embedBuilder.titlePlaceholder')} placeholder={titlePlaceholder ?? t('embedBuilder.titlePlaceholder')}
onChange={(event) => patch({ title: event.target.value })} onChange={(event) => patch({ title: event.target.value })}
/> />
</div> </div>
@@ -123,7 +129,7 @@ export function DiscordEmbedBuilder({
rows={5} rows={5}
maxLength={4096} maxLength={4096}
value={draft.description ?? ''} value={draft.description ?? ''}
placeholder={t('embedBuilder.descriptionPlaceholder')} placeholder={descriptionPlaceholder ?? t('embedBuilder.descriptionPlaceholder')}
onChange={(event) => patch({ description: event.target.value })} onChange={(event) => patch({ description: event.target.value })}
/> />
</div> </div>

View File

@@ -361,7 +361,10 @@
"leaveEnabledLabel": "Abschiedsnachricht aktiviert", "leaveEnabledLabel": "Abschiedsnachricht aktiviert",
"leaveChannelId": "Abschieds-Kanal-ID", "leaveChannelId": "Abschieds-Kanal-ID",
"leaveContent": "Nachrichtentext", "leaveContent": "Nachrichtentext",
"leaveEmbed": "Embed" "leaveContentPlaceholder": "Tschüss {user.tag} — bis bald auf {server}!",
"leaveEmbed": "Embed",
"leaveEmbedTitlePlaceholder": "Auf Wiedersehen",
"leaveEmbedDescriptionPlaceholder": "{user.tag} hat {server} verlassen."
}, },
"verification": { "verification": {
"title": "Verifizierung", "title": "Verifizierung",

View File

@@ -361,7 +361,10 @@
"leaveEnabledLabel": "Leave message enabled", "leaveEnabledLabel": "Leave message enabled",
"leaveChannelId": "Leave channel ID", "leaveChannelId": "Leave channel ID",
"leaveContent": "Message content", "leaveContent": "Message content",
"leaveEmbed": "Embed" "leaveContentPlaceholder": "Goodbye {user.tag} — see you around on {server}!",
"leaveEmbed": "Embed",
"leaveEmbedTitlePlaceholder": "Goodbye",
"leaveEmbedDescriptionPlaceholder": "{user.tag} left {server}."
}, },
"verification": { "verification": {
"title": "Verification", "title": "Verification",