71 lines
2.5 KiB
JavaScript
71 lines
2.5 KiB
JavaScript
const prompt = require('prompt-sync')({ sigint: true });
|
|
const fs = require('fs');
|
|
const filePath = 'todolist.txt';
|
|
|
|
console.log("Welcome to Tiffy's to-do list!");
|
|
|
|
const name = prompt("What is your name? ");
|
|
console.log(`Hello, ${name}!`);
|
|
|
|
const instruction = `You can:
|
|
(1) Add items to the to-do list
|
|
(2) Remove items from the to-do list
|
|
(3) Show the to-do list
|
|
(4) Exit the to-do list`;
|
|
console.log(instruction);
|
|
|
|
function loadToDoList() {
|
|
const data = fs.existsSync(filePath) ? fs.readFileSync(filePath, 'utf-8') : '';
|
|
return data ? data.split('\n').filter(item => item.trim() !== '') : [];
|
|
}
|
|
|
|
let todoList = loadToDoList();
|
|
|
|
while (true) {
|
|
const todo = prompt("Would you like to add, remove, show, or exit? ").toLowerCase();
|
|
|
|
switch (todo) {
|
|
case "add":
|
|
let condition_add = true;
|
|
while (condition_add) {
|
|
const add1 = prompt("What would you like to add to the to-do list? ");
|
|
if (add1.toLowerCase() === "stop") {
|
|
condition_add = false;
|
|
}
|
|
todoList.push(add1);
|
|
console.log(`You have added "${add1}" to Tiffy's to-do list!`);
|
|
console.log(`Type \"stop\" to return to the main menu.`);
|
|
}
|
|
fs.writeFileSync(filePath, todoList.join('\n'), 'utf-8');
|
|
break;
|
|
|
|
case "remove":
|
|
let condition_remove = true;
|
|
while (condition_remove) {
|
|
const remove1 = prompt("What would you like to remove from the to-do list? (Input the number on the list) ");
|
|
if (remove1.toLowerCase() === "stop") {
|
|
condition_remove = false;
|
|
}
|
|
const index = parseInt(remove1) - 1;
|
|
const removedTask = todoList.splice(index, 1);
|
|
console.log(`You have removed "${removedTask}" from Tiffy's to-do list!`);
|
|
console.log(`Type \"stop\" to return to the main menu.`);
|
|
}
|
|
fs.writeFileSync(filePath, todoList.join('\n'), 'utf-8');
|
|
break;
|
|
|
|
case "show":
|
|
console.log("Tiffy's to-do list:");
|
|
todoList.forEach((task, index) => console.log(`${index + 1}. ${task}`));
|
|
break;
|
|
|
|
case "exit":
|
|
console.log("Thank you for using Tiffy's to-do list.");
|
|
return;
|
|
|
|
default:
|
|
console.log("Hey! Tiffy doesn't know what you mean!");
|
|
break;
|
|
}
|
|
}
|