Me learning react like an absolute chungus
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

72 linhas
1.4KB

  1. import Task from "../types/Task";
  2. import React from 'react';
  3. type KBColumnProps = {
  4. color: string;
  5. title: string;
  6. tasks: Task[];
  7. id: number;
  8. onDelete?: (id: number) => void;
  9. };
  10. let bgc = "hotpink";
  11. class KBColumn extends React.Component<KBColumnProps> {
  12. getTaskRender = () =>{
  13. return this.props.tasks.map((task) => {
  14. if (task.priority === "urgent") {
  15. bgc = "red";
  16. } else if (task.priority === "important") {
  17. bgc = "yellow";
  18. } else if (task.priority === "normal") {
  19. bgc = "blue";
  20. }
  21. return (
  22. <div
  23. style={{
  24. borderColor: "#ccc",
  25. borderWidth: "1px",
  26. borderStyle: "solid",
  27. margin: "10px",
  28. }}
  29. className="taskWrapper"
  30. >
  31. <div
  32. style={{ backgroundColor: bgc, display: "inline" }}
  33. className="prioBlock"
  34. title={task.priority}
  35. ></div>
  36. <div className="taskText">
  37. <h3> {task.title} </h3>
  38. <p> {task.description} </p>
  39. </div>
  40. </div>
  41. );
  42. });
  43. };
  44. render() {
  45. return (
  46. <div className="KBColumn" style={{ backgroundColor: this.props.color }}>
  47. <h3>{this.props.title} </h3>
  48. {this.getTaskRender()}
  49. <button
  50. onClick={() => {
  51. this.props.onDelete && this.props.onDelete(this.props.id);
  52. }}
  53. >
  54. Delete
  55. </button>
  56. </div>
  57. );
  58. }
  59. }
  60. export default KBColumn;