ExpoIntermediate
TaskTrack — add, toggle, delete (pure helpers)
TaskTrack-এর core logic — pure function দিয়ে state update।
5টি অংশবাংলা ভাষায়
TaskTrack-এর heart — add / toggle / delete। নিয়ম: pure helper function। lib/tasks.ts:
lib/tasks.tsts
ts
export type Task = {
id: string;
title: string;
done: boolean;
createdAt: string;
};
export function makeTask(title) {
return {
id: Date.now().toString(),
title,
done: false,
createdAt: new Date().toISOString(),
};
}
export function addTask(list, title) {
return [makeTask(title), ...list];
}
export function toggleTask(list, id) {
return list.map((t) => (t.id === id ? { ...t, done: !t.done } : t));
}
export function deleteTask(list, id) {
return list.filter((t) => t.id !== id);
}helper-গুলো pure — আগের list-কে mutate না করে নতুন array return করে। component-এ ব্যবহার:
const [tasks, setTasks] = useState<Array<Task>>([]);
function handleAdd(title) {
setTasks((prev) => {
const next = addTask(prev, title);
saveTasks(next);
return next;
});
}id-এর গুরুত্ব
stable id-ই key, toggle, delete — সব operation সহজ রাখে। Date.now() dev demo-তে চলবে; production-এ UUID ব্যবহার ভালো।
শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।