Skip to content

Commit 70ef104

Browse files
committedJun 17, 2023
feat: finish crud v1
1 parent acc608b commit 70ef104

File tree

3 files changed

+67
-3
lines changed

3 files changed

+67
-3
lines changed
 

‎index.html

+28-1
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,15 @@
1414
<section class="bg-black w-[600px] h-[400px] gradient-global rounded-3xl pt-4 pr-3 pb-3 pl-3 section-animation">
1515
<h1 class='font-bold text-center text-3xl'>LISTA DE TAREFAS</h1>
1616
<p class="text-center font-semibold text-base">Apenas 3 tarefas restantes, pois já finalizamos 2 das 5 tarefas.</p>
17-
<div class="bg-white w-full h-[70%] overflow-auto p-2">
17+
<div class="bg-[#181818] rounded-[10px] w-full h-[70%] overflow-auto p-2">
1818
<ul class="flex flex-col gap-2">
1919
</ul>
2020
</div>
21+
<div class="flex justify-center">
22+
<button class="p-4 rounded-[10px] font-semibold" id="create-task">CRIAR TAREFA</button>
23+
</div>
2124
</section>
25+
<!-- Editando uma tarefa -->
2226
<dialog class="bg-gray-800 m-auto h-96 w-[30rem] rounded-xl p-4" id="task-modal">
2327
<div class="content-modal relative">
2428
<button class="p-[0.1rem] absolute right-0" id="close-modal">X</button>
@@ -40,6 +44,29 @@ <h2 class="font-bold text-center">
4044
</div>
4145
</dialog>
4246

47+
<!-- Criando uma tarefa -->
48+
<dialog class="bg-gray-800 m-auto h-96 w-[30rem] rounded-xl p-4" id="create-task-modal">
49+
<div class="content-modal relative">
50+
<button class="p-[0.1rem] absolute right-0" id="create-close-task-modal">X</button>
51+
<h2 class="font-bold text-center">
52+
Criando uma tarefa
53+
</h2>
54+
<div class="flex flex-col">
55+
<label class="font-semibold" for="title-task">Título:</label>
56+
<input class="h-8 rounded-[8px] focus:outline-none text-black pl-2 pr-2" type="text" id="create-title-task" />
57+
</div>
58+
59+
<div class="flex flex-col mt-2">
60+
<label class="font-semibold" for="description">Descrição:</label>
61+
<textarea class="h-40 rounded-[8px] focus:outline-none resize-none text-black pl-2 pr-2" id="create-description"></textarea>
62+
</div>
63+
<div class="flex mt-4 justify-center">
64+
<button class="bg-black p-4 rounded-[10px] font-semibold" id="create-task-submit">Registrar</button>
65+
</div>
66+
</div>
67+
</dialog>
68+
69+
<!-- Criando um usuario -->
4370
<dialog class="bg-gray-800 m-auto h-98 w-[30rem] rounded-xl p-4" id="user-modal">
4471
<div class="content-modal relative">
4572
<h2 class="font-bold text-center">

‎src/javascript/domTasksCrud.ts

+35-1
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,23 @@
11
import { taskApi } from "../service/taskApi"
2+
23
const taskModal: HTMLDialogElement = document.querySelector("#task-modal")!;
34
const taskTitle: HTMLInputElement = document.querySelector("#title-task")!;
45
const taskDescrition: HTMLTextAreaElement = document.querySelector("#description")!;
56
const closeModal: HTMLButtonElement = document.querySelector("#close-modal")!;
67
const buttonSubmit: HTMLButtonElement = document.querySelector("#button-submit")!;
78

9+
const createTaskModal: HTMLDialogElement = document.querySelector("#create-task-modal")!;
10+
const createTaskTitle: HTMLInputElement = document.querySelector("#create-title-task")!;
11+
const createTaskDescription: HTMLTextAreaElement = document.querySelector("#create-description")!;
12+
const createTaskButtonSubmit: HTMLButtonElement = document.querySelector("#create-task-submit")!;
13+
const createTaskButton: HTMLButtonElement = document.querySelector("#create-task")!;
14+
const createCloseTaskModal: HTMLButtonElement = document.querySelector("#create-close-task-modal")!;
15+
816
let idForUpdate = 0;
917
const userData = JSON.parse(localStorage.getItem('@userData') ?? '');
1018

19+
// Atualizando uma tarefa
1120
buttonSubmit.addEventListener("click", () => {
12-
console.log(idForUpdate);
1321
taskApi.updateTask(idForUpdate, {
1422
title: taskTitle.value,
1523
description: taskDescrition.value
@@ -20,6 +28,32 @@ closeModal.addEventListener("click", () => {
2028
taskModal.close();
2129
});
2230

31+
// Criando uma tarefa
32+
createTaskButton.addEventListener("click", () => {
33+
createTaskModal.showModal();
34+
});
35+
36+
createCloseTaskModal.addEventListener("click", () => {
37+
createTaskModal.close();
38+
});
39+
40+
createTaskButtonSubmit.addEventListener("click", async () => {
41+
try {
42+
const response = await taskApi.createTask({
43+
user: userData[0].name,
44+
photo: userData[0].urlImage,
45+
title: createTaskTitle.value,
46+
description: createTaskDescription.value,
47+
});
48+
49+
console.log("Tarefa criada com sucesso:", response);
50+
location.reload()
51+
} catch (error) {
52+
console.log("Erro ao criar a tarefa:", error);
53+
}
54+
});
55+
56+
2357
async function fetchData() {
2458
try {
2559
const response = await taskApi.getAllTasks();

‎src/service/taskApi.ts

+4-1
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ export const taskApi = {
3838
console.log('Ocorreu um erro na requisição:', error);
3939
});
4040
},
41+
4142
updateTask: (id: number, dataToUpdate: ITaskField) => {
4243
fetch(`${baseURL}/tasks/${id}`, {
4344
method: 'PATCH',
@@ -57,6 +58,7 @@ export const taskApi = {
5758
console.log('Ocorreu um erro na requisição:', error);
5859
});
5960
},
61+
6062
getAllTasks: async () => {
6163
try {
6264
const response = await fetch(`${baseURL}/tasks`);
@@ -66,9 +68,10 @@ export const taskApi = {
6668
console.log("Ocorreu um erro na requisição", error)
6769
}
6870
},
71+
6972
createTask: async (dataToCreate: ITaskField) => {
7073
try {
71-
const response = await fetch(baseURL, {
74+
const response = await fetch(`${baseURL}/tasks`, {
7275
method: 'POST',
7376
headers: {
7477
'Content-Type': 'application/json'

0 commit comments

Comments
 (0)
Please sign in to comment.