feat: add summary length slider to Settings page

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
master
oabrivard 3 months ago
parent 1b63afd12a
commit bf07b049f3

@ -145,6 +145,7 @@ test.describe('Live generation with OpenAI', () => {
use_brave_search: false,
article_history_days: 90,
batch_size: 5,
summary_length: 3,
});
expect(settingsResp.status).toBe(200);

@ -161,6 +161,11 @@ const fr = {
'settings.articleHistoryDays': 'Historique des articles (jours)',
'settings.batchSize': 'Taille du lot de traitement',
'settings.batchSizeHelp': 'Nombre d\'articles traites en parallele lors de la generation (defaut: 5).',
'settings.summaryLength': 'Niveau de detail des resumes',
'settings.summaryLengthHelp': 'Controle la longueur des resumes generes pour chaque article.',
'settings.summaryShort': 'Court',
'settings.summaryMedium': 'Moyen',
'settings.summaryDetailed': 'Detaille',
'settings.export': 'Exporter',
'settings.import': 'Importer',
'settings.exportIncludeKeys': 'Inclure les cles API',

@ -433,6 +433,40 @@ const Settings: Component = () => {
</div>
{/* Summary length slider */}
<div>
<label for="summaryLength" class="block text-sm font-medium text-gray-700">
{t('settings.summaryLength')}
</label>
<p class="text-xs text-gray-500 mb-2">{t('settings.summaryLengthHelp')}</p>
<div class="flex items-center gap-4">
<span class="text-xs text-gray-500">{t('settings.summaryShort')}</span>
<input
type="range"
id="summaryLength"
min="1"
max="3"
step="1"
class="flex-1 h-2 bg-gray-200 rounded-lg appearance-none cursor-pointer accent-indigo-600"
value={settings().summary_length}
onInput={(e) =>
setSettings((prev) => ({
...prev,
summary_length: parseInt(e.currentTarget.value) || 3,
}))
}
/>
<span class="text-xs text-gray-500">{t('settings.summaryDetailed')}</span>
</div>
<div class="text-center text-xs text-gray-500 mt-1">
{settings().summary_length === 1
? t('settings.summaryShort')
: settings().summary_length === 2
? t('settings.summaryMedium')
: t('settings.summaryDetailed')}
</div>
</div>
<SettingsAdvanced settings={settings} setSettings={setSettings} />
<SettingsBraveSearch settings={settings} setSettings={setSettings} />

@ -48,6 +48,7 @@ export interface UserSettings {
use_brave_search: boolean;
article_history_days: number;
batch_size: number;
summary_length: number;
search_agent_behavior: string;
ai_model: string;
ai_model_websearch: string;
@ -66,6 +67,7 @@ export const DEFAULT_SETTINGS: UserSettings = {
use_brave_search: false,
article_history_days: 90,
batch_size: 5,
summary_length: 3,
search_agent_behavior: '',
ai_model: '',
ai_model_websearch: '',

Loading…
Cancel
Save