Skip to content

Commit

Permalink
add task solution
Browse files Browse the repository at this point in the history
  • Loading branch information
DariaNastas committed Nov 18, 2024
1 parent c2662cc commit a0fcc7b
Showing 1 changed file with 13 additions and 9 deletions.
22 changes: 13 additions & 9 deletions src/components/TodoItem.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { Todo } from '../types/Todo';

interface Props {
todo: Todo;
onRemoveTodo?: (todoId: number) => void;
onRemoveTodo?: (todoId: number) => Promise<void>;
onToggleTodoCompletion?: (todo: Todo) => void;
onUpdateTodoTitle?: (todo: Todo) => Promise<string>;
isLoading: boolean;
Expand Down Expand Up @@ -33,31 +33,35 @@ export const TodoItem: React.FC<Props> = ({
event.preventDefault();
const trimmedEditedTitle = editedTitle.trim();

// Якщо новий заголовок не змінився
if (trimmedEditedTitle === todo.title) {
setIsEditingMode(false);

return;
}

// Якщо заголовок порожній, спробувати видалити туду
if (!trimmedEditedTitle) {
onRemoveTodo(todo.id);
setIsEditingMode(false);
try {
await onRemoveTodo(id); // Чекаємо завершення видалення
setIsEditingMode(false); // Закриваємо режим редагування
} catch (error) {
// Якщо сталася помилка, не закриваємо форму редагування
}

return;
}

// Якщо заголовок оновлений
try {
const res = await onUpdateTodoTitle({
await onUpdateTodoTitle({
...todo,
title: trimmedEditedTitle,
});

if (res === 'ok') {
setIsEditingMode(false);
} else {
throw new Error('Failed to rename');
}
setIsEditingMode(false); // Закриваємо режим редагування
} catch (error) {
// Якщо сталася помилка, залишаємо форму відкритою
setIsEditingMode(true);
}
};
Expand Down

0 comments on commit a0fcc7b

Please sign in to comment.