From 851e6cfb3d167bd3fcbbe96522e93b2a08a7e338 Mon Sep 17 00:00:00 2001 From: lama saad Date: Fri, 29 Sep 2023 07:48:40 +0300 Subject: [PATCH] Make slug and unique title. --- assets/js/main.js | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/assets/js/main.js b/assets/js/main.js index 0d686d7..afebcd7 100644 --- a/assets/js/main.js +++ b/assets/js/main.js @@ -20,7 +20,7 @@ function displayTasks() { for (let i = 0; i < tasks.length; i++) data += `
-

${tasks[i]}

+

${tasks[i].title}

@@ -57,7 +57,7 @@ function displayBtnAdd() { } getTasksFromLocalStorage(); -//displayTasks() +displayTasks() if ("undefined" != typeof Storage) { console.log("LocalStorage is supported."); @@ -65,14 +65,32 @@ if ("undefined" != typeof Storage) { toDo.innerHTML = '

LocalStorage is not supported in this browser.

'; } + addBtn.addEventListener("click", function () { - var t = taskInput.value; - tasks.push(t), + let title = taskInput.value; + if(!checkIfUnique(title)){ + let task = { + 'title':title, + 'slug' : generateSlug(title) + } + tasks.push(task), clearTaskInput(), setTasksToLocalStorage(tasks), displayTasks(); + }else{ + showError(); + } }); +function checkIfUnique(title){ + return tasks.filter((e)=>{return e.title==title}); +} + +function generateSlug(title){ + let slug = title.toLowerCase().replace(/[-+_=]/g,'').replace(/ /g,'-'); + return slug; +} + let id; function editTask(t) { @@ -91,3 +109,8 @@ function updateTask(t, e) { editBtn.addEventListener("click", function () { updateTask(id, taskInput.value); }); + + +function showError(){ + alert("the name should be unique") +}