|
|
|
@ -3,13 +3,13 @@ import { faker } from '@faker-js/faker'; |
|
|
|
import { TodoItem } from './TodoItem'; |
|
|
|
import { nanoid } from 'nanoid'; |
|
|
|
|
|
|
|
const generateFakeTodoItem = () => ({ |
|
|
|
const generateFakeTodoItem = ():{label: string, status: string, id: string} => ({ |
|
|
|
label: faker.hacker.phrase(), |
|
|
|
status: faker.random.arrayElement(['open', 'done', 'archived']), |
|
|
|
id: nanoid(), |
|
|
|
}); |
|
|
|
|
|
|
|
const generateNTodo = (size) => { |
|
|
|
const generateNTodo = (size: number):{label: string, status: string, id: string}[] => { |
|
|
|
return Array.from(Array(size).keys()).map(generateFakeTodoItem); |
|
|
|
}; |
|
|
|
|
|
|
|
@ -32,10 +32,10 @@ const initialList = [ |
|
|
|
...generateNTodo(10), |
|
|
|
]; |
|
|
|
|
|
|
|
function App() { |
|
|
|
function App(): JSX.Element { |
|
|
|
const [todoList, setTodoList] = useState(initialList); |
|
|
|
|
|
|
|
const updater = (id, newStatus) => { |
|
|
|
const updater = (id: string, newStatus: string): void => { |
|
|
|
setTodoList((oldList) => |
|
|
|
oldList.map((it) => { |
|
|
|
if (it.id !== id) { |
|
|
|
@ -57,7 +57,7 @@ function App() { |
|
|
|
key={item.id} |
|
|
|
label={item.label} |
|
|
|
status={item.status} |
|
|
|
onChecked={(newState) => updater(item.id, newState)} |
|
|
|
onChecked={(newState: string):void => updater(item.id, newState)} |
|
|
|
/> |
|
|
|
))} |
|
|
|
</div> |
|
|
|
|