From 02bc19770f3ecbec7ada8b237673089be9f03579 Mon Sep 17 00:00:00 2001 From: shats Date: Sun, 11 Jan 2026 19:33:49 +0700 Subject: [PATCH] feat: Allow saving of empty URL list and update success messages accordingly, enhancing user feedback and functionality in AutoUrlManager. --- frontend/src/AutoUrlManager.jsx | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/frontend/src/AutoUrlManager.jsx b/frontend/src/AutoUrlManager.jsx index 28be3c0..4b8cf60 100644 --- a/frontend/src/AutoUrlManager.jsx +++ b/frontend/src/AutoUrlManager.jsx @@ -107,19 +107,15 @@ function AutoUrlManager() { setError(''); setSuccess(''); - // Validate URLs + // Validate URLs (пустой список тоже валиден - для очистки) const validUrls = urls .filter(u => u != null && isValidHttpUrl(u.url) && isValidCommunity(u.community)) .map(u => ({ url: u.url.trim(), community: String(u.community).trim() })); - if (validUrls.length === 0) { - setError('Добавьте хотя бы одну корректную запись (валидный URL и числовой community)'); - return; - } await api.post('/auto-urls', { urls: validUrls }); setUrls(validUrls); setLastSaved(new Date().toISOString()); - setSuccess('URL-адреса сохранены успешно'); + setSuccess(validUrls.length === 0 ? 'Список URL очищен' : 'URL-адреса сохранены успешно'); setSelectedRows(new Set()); setTimeout(() => setSuccess(''), 3000); } catch (err) { @@ -257,7 +253,9 @@ function AutoUrlManager() { const handleKeyDown = (e) => { if ((e.ctrlKey || e.metaKey) && e.key === 's') { e.preventDefault(); - if (hasAtLeastOneValidRow && !saving && !processing) { + // Разрешить сохранение: либо пустой список, либо есть валидные строки + const canSave = urls.length === 0 || hasAtLeastOneValidRow; + if (canSave && !saving && !processing) { saveUrls(); } } @@ -272,7 +270,7 @@ function AutoUrlManager() { }; window.addEventListener('keydown', handleKeyDown); return () => window.removeEventListener('keydown', handleKeyDown); - }, [hasAtLeastOneValidRow, saving, processing, saveUrls]); + }, [urls.length, hasAtLeastOneValidRow, saving, processing, saveUrls]); return (
@@ -326,7 +324,7 @@ function AutoUrlManager() { className="btn btn-outline-primary" type="button" onClick={saveUrls} - disabled={saving || processing || !hasAtLeastOneValidRow} + disabled={saving || processing || (urls.length > 0 && !hasAtLeastOneValidRow)} title="Сохранить список URL (Ctrl+S)" > {saving ? (