fix(task): replace Date.now with nanoid for unique keys and update task interface

This commit is contained in:
2026-04-27 14:50:06 +02:00
parent ef06f22edc
commit 0e3a70a454
6 changed files with 19 additions and 14 deletions
+9 -10
View File
@@ -1,5 +1,6 @@
import { useCallback, useEffect, useState } from "react";
import type { Task } from "../types/task";
import { nanoid } from "nanoid";
export const useTasks = () => {
const [tasks, setTasks] = useState<Task[]>(() => {
@@ -15,26 +16,24 @@ export const useTasks = () => {
if (title.trim() === '') return;
const newTask: Task = {
id: Date.now(),
title: title,
id: nanoid(),
title,
completed: false,
createdAt: new Date().toISOString()
};
setTasks([...tasks, newTask]);
setTasks(prev => [...prev, newTask]);
};
const deleteTask = useCallback((id: number) => {
setTasks(tasks.filter(task => task.id !== id));
const deleteTask = useCallback((id: string) => {
setTasks(prev => prev.filter(task => task.id !== id));
}, []);
const toggleTask = useCallback((id: number) => {
setTasks(tasks.map(task =>
const toggleTask = useCallback((id: string) => {
setTasks(prev => prev.map(task =>
task.id === id ? { ...task, completed: !task.completed } : task
));
}, []);
return { tasks, addTask, deleteTask, toggleTask };
};