diff --git a/.eslintrc b/.eslintrc index a2ceebe..ccceb53 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,3 +1,7 @@ { - "extends": ["next/babel", "next/core-web-vitals"] -} + "extends": ["next", "next/core-web-vitals"], + "rules": { + // Other rules + "@next/next/no-img-element": "off" + } +} diff --git a/components/AddTask.js b/components/AddTask.js index 9652adb..9841bff 100644 --- a/components/AddTask.js +++ b/components/AddTask.js @@ -1,10 +1,32 @@ +import axios from "axios" +import { useState } from "react" +import { useAuth } from "../context/auth" + export default function AddTask() { + const [task, setTask] = useState("") + const { token } = useAuth() const addTask = () => { - /** - * @todo Complete this function. - * @todo 1. Send the request to add the task to the backend server. - * @todo 2. Add the task in the dom. - */ + axios({ + url : 'https://todo-app-csoc.herokuapp.com/todo/create/', + method : "post", + headers: { + Authorization: 'Token ' + token, + }, + data : { + title: task + } + } + + ) + .then(function ({ data, status }) { + setTask(""); + + + }) + .catch(function (err) { + }) + + } return (
@@ -12,6 +34,8 @@ export default function AddTask() { type='text' className='todo-add-task-input px-4 py-2 placeholder-blueGray-300 text-blueGray-600 bg-white rounded text-sm border border-blueGray-300 outline-none focus:outline-none focus:ring w-full' placeholder='Enter Task' + value={task} + onChange = {(e)=> {setTask(e.target.value)}} />
+ ) diff --git a/components/RegisterForm.js b/components/RegisterForm.js index a6ef2e3..41dd997 100644 --- a/components/RegisterForm.js +++ b/components/RegisterForm.js @@ -2,8 +2,10 @@ import React, { useState } from 'react' import axios from '../utils/axios' import { useAuth } from '../context/auth' import { useRouter } from 'next/router' +import {no_auth_required} from "../middlewares/no_auth_required"; export default function Register() { + no_auth_required(); const { setToken } = useAuth() const router = useRouter() @@ -52,9 +54,11 @@ export default function Register() { password: password, } - axios.post( - 'auth/register/', - dataForApiRequest, + axios({ + url : 'https://todo-app-csoc.herokuapp.com/auth/register/', + method : "post", + data : dataForApiRequest + } ) .then(function ({ data, status }) { setToken(data.token) diff --git a/components/TodoListItem.js b/components/TodoListItem.js index 7965f3b..e7daefe 100644 --- a/components/TodoListItem.js +++ b/components/TodoListItem.js @@ -1,56 +1,89 @@ /* eslint-disable @next/next/no-img-element */ +import axios from "axios"; +import { useState } from "react"; +import { useAuth } from "../context/auth"; -export default function TodoListItem() { +export default function TodoListItem(e) { + const [showedit, setShowEdit] = useState(false); + const [updateData, setUpdateData] = useState(); + const { token } = useAuth(); const editTask = (id) => { - /** - * @todo Complete this function. - * @todo 1. Update the dom accordingly - */ + setShowEdit(!showedit); + } const deleteTask = (id) => { - /** - * @todo Complete this function. - * @todo 1. Send the request to delete the task to the backend server. - * @todo 2. Remove the task from the dom. - */ + axios({ + url:"https://todo-app-csoc.herokuapp.com/todo/"+id+"/", + headers:{ + Authorization: 'Token ' + token + }, + method:"DELETE" + + }).then((res)=>{ + console.log("success") + }).catch((err)=>{ + console.log("error") + }) + } const updateTask = (id) => { - /** - * @todo Complete this function. - * @todo 1. Send the request to update the task to the backend server. - * @todo 2. Update the task in the dom. - */ + const dataForUpdate = { + title: updateData + } + if(token){ + axios({ + url:"https://todo-app-csoc.herokuapp.com/todo/"+id+"/", + headers:{ + Authorization: 'Token ' + token + }, + data:dataForUpdate, + method:"patch" + + }).then((res)=>{ + setShowEdit(!showedit) + setUpdateData('') + }).catch((err)=>{ + console.log("error") + }) + } + } return ( <>
  • { + setUpdateData(e.target.value); + }} + value={updateData} /> -
    +
    -
    - Sample Task 1 +
    + {e.title}
    - +