fix: resolve error when similar texts exist

This commit is contained in:
2026-02-04 09:57:03 +05:00
parent f9f1693e44
commit e29630314c
2 changed files with 11 additions and 2 deletions
+3 -2
View File
@@ -31,6 +31,7 @@
- Редактирование текста прямо в списке
- Удаление текста кнопкой "×"
- Автоматическое обновление панелей при изменении текстов
- Автоматическая фильтрация пустых текстов и дубликатов
#### 5. Просмотр панелей
- Единое фоновое изображение в боковой панели (один раз вверху)
@@ -61,11 +62,11 @@
### Шаг 3: Создание и редактирование текстов
1. Пользователь вводит текст для первой панели (например: "links")
2. Нажимает кнопку "Добавить"
3. Текст добавляется в список текстов
3. Текст добавляется в список текстов (пустые тексты и дубликаты автоматически фильтруются)
4. В боковой панели автоматически отображается превью созданной панели
5. Пользователь повторяет процесс для других текстов ("about me", "projects", "memes")
6. Все тексты отображаются в списке ниже поля ввода
7. Каждый текст в списке можно редактировать прямо в поле ввода
7. Каждый текст в списке можно редактировать прямо в поле ввода (дубликаты автоматически фильтруются)
8. Любой текст можно удалить кнопкой "×"
9. При редактировании или удалении текста автоматически обновляется соответствующая панель
+8
View File
@@ -63,11 +63,19 @@
}
function handleAddText(text: string) {
// Проверяем, что текст не пустой и не дублируется
if (!text.trim()) return;
if (texts.some(t => t.text === text)) return;
texts = [...texts, { id: crypto.randomUUID(), text }];
updatePanelsFromTexts();
}
function handleUpdateText(id: string, newText: string) {
// Проверяем, что текст не пустой и не дублируется
if (!newText.trim()) return;
if (texts.some(t => t.id !== id && t.text === newText)) return;
texts = texts.map(t => t.id === id ? { ...t, text: newText } : t);
updatePanelsFromTexts();
}