"use client"; import { useState } from 'react'; import { useTranslations } from 'next-intl'; import { useSettingsStore } from '@/stores/settings-store'; import { SettingsSection, SettingItem, Select, ToggleSwitch } from './settings-section'; import { X } from 'lucide-react'; import { SUPPORTED_SUB_ADDRESS_DELIMITERS, isSupportedSubAddressDelimiter, isValidSubAddressDelimiter, } from '@/lib/sub-addressing'; const CUSTOM_DELIMITER_SENTINEL = '__custom__'; const DEFAULT_CUSTOM_DELIMITER = '~'; export function ComposingSettings() { const t = useTranslations('settings.email_behavior'); const [newKeyword, setNewKeyword] = useState(''); const { autoSelectReplyIdentity, attachmentReminderEnabled, attachmentReminderKeywords, subAddressDelimiter, signaturePosition, signatureSeparatorEnabled, updateSetting, } = useSettingsStore(); return ( updateSetting('autoSelectReplyIdentity', checked)} /> { if (value === CUSTOM_DELIMITER_SENTINEL) { if (isSupportedSubAddressDelimiter(subAddressDelimiter)) { updateSetting('subAddressDelimiter', DEFAULT_CUSTOM_DELIMITER); } } else { updateSetting('subAddressDelimiter', value); } }} options={[ ...SUPPORTED_SUB_ADDRESS_DELIMITERS.map((delim) => ({ value: delim, label: t('sub_address_delimiter.option', { delimiter: delim }), })), { value: CUSTOM_DELIMITER_SENTINEL, label: t('sub_address_delimiter.custom') }, ]} /> {!isSupportedSubAddressDelimiter(subAddressDelimiter) && ( { const next = e.target.value.slice(0, 1); if (next && isValidSubAddressDelimiter(next)) { updateSetting('subAddressDelimiter', next); } }} aria-label={t('sub_address_delimiter.custom_input_label')} placeholder={DEFAULT_CUSTOM_DELIMITER} className="w-16 px-2 py-1 text-sm font-mono text-center bg-background border border-border rounded-md focus:outline-none focus:ring-1 focus:ring-ring" /> )} updateSetting('attachmentReminderEnabled', checked)} /> {attachmentReminderEnabled && (

{t('attachment_reminder.keywords_description')}

{attachmentReminderKeywords.map((kw) => ( {kw} ))}
{ e.preventDefault(); const trimmed = newKeyword.trim().toLowerCase(); if (trimmed && !attachmentReminderKeywords.includes(trimmed)) { updateSetting('attachmentReminderKeywords', [...attachmentReminderKeywords, trimmed]); } setNewKeyword(''); }} > setNewKeyword(e.target.value)} placeholder={t('attachment_reminder.add_placeholder')} className="flex-1 min-w-0 px-2 py-1 text-sm bg-background border border-border rounded-md focus:outline-none focus:ring-1 focus:ring-ring" />
)}
); }