import React from "react";
import { Card, Button, Badge, Spinner } from "react-bootstrap";
import { updateTask, deleteTask } from "../../../services/TaskService";
class TaskList extends React.Component {
  toggleCompleteStatus = async (item) => {
    if (item.status === 0) {
      item.status = 1;
    } else {
      item.status = 0;
    }
    await updateTask(item.id, item);
    this.props.onEditTask();
  };
  deleteTask = async (id) => {
    const response = await deleteTask(id);
    if (response.success) {
      this.props.onEditTask();
    } else {
      alert("Sorry !! Something went wrong !!");
    }
  };
  render() {
    return (
      <>
        {this.props.taskList.map((task, index) => (
          <Card key={index} className="mt-1 mb-1">
            <Card.Body>
              <div className="">
                <div className="float-left">
                  <p>
                    {task.status === 1 && (
                      <del className="text-success">
                        <strong>
                          {task.name}{" "}
                          <Badge variant="primary">{task.tasks_count}</Badge>
                        </strong>
                      </del>
                    )}
                    {task.status === 0 && (
                      <span>
                        {task.name}{" "}
                        <Badge variant="primary">{task.tasks_count}</Badge>
                      </span>
                    )}
                  </p>
                </div>
                <div className="float-right">
                  <button
                    className={`btn btn-outline-${
                      task.status === 1 ? "info" : "success"
                    } btn-sm`}
                    onClick={() => this.toggleCompleteStatus(task)}
                  >
                    {task.status === 0 && <span> ? Mark as Completed</span>}
                    {task.status === 1 && <span> Mark as Pending</span>}
                  </button>
                  <button
                    className="btn btn-outline-danger btn-sm ml-2"
                    onClick={() => this.deleteTask(task.id)}
                  >
                    Delete
                  </button>
                </div>
                <div className="clearfix"></div>
              </div>
              {this.props.isDetailsView && (
                <Card.Text>{task.description}</Card.Text>
              )}
            </Card.Body>
          </Card>
        ))}
      </>
    );
  }
}
export default TaskList;
 
  |