|
1 |
| -import React from "react"; |
| 1 | +import React, { useState, useEffect } from "react"; |
| 2 | +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; |
| 3 | +import { |
| 4 | + faArrowCircleRight, |
| 5 | + faArrowCircleDown, |
| 6 | +} from "@fortawesome/free-solid-svg-icons"; |
2 | 7 | import "../styles/DisplayTable.css";
|
3 | 8 |
|
4 | 9 | const useSortableData = (items, config = null) => {
|
@@ -37,15 +42,29 @@ const useSortableData = (items, config = null) => {
|
37 | 42 |
|
38 | 43 | const DisplayTable = ({ tableData, isDarkMode }) => {
|
39 | 44 | const { items, requestSort, sortConfig } = useSortableData(tableData);
|
| 45 | + const [displayDist, setDisplayDist] = useState(false); |
| 46 | + const [distId, setDistId] = useState(""); |
| 47 | + |
40 | 48 | const lightText = {
|
41 | 49 | color: isDarkMode && "rgba(255,255,255,.75)",
|
42 | 50 | };
|
| 51 | + |
43 | 52 | const getClassNamesFor = (name) => {
|
44 | 53 | if (!sortConfig) {
|
45 | 54 | return;
|
46 | 55 | }
|
47 | 56 | return sortConfig.key === name ? sortConfig.direction : undefined;
|
48 | 57 | };
|
| 58 | + |
| 59 | + const toggleDistView = (id) => { |
| 60 | + setDistId(id); |
| 61 | + setDisplayDist(!displayDist); |
| 62 | + }; |
| 63 | + |
| 64 | + useEffect(() => { |
| 65 | + console.log(distId, displayDist); |
| 66 | + }, [distId, displayDist]); |
| 67 | + |
49 | 68 | return (
|
50 | 69 | <table>
|
51 | 70 | {/* <caption>Products</caption> */}
|
@@ -101,7 +120,18 @@ const DisplayTable = ({ tableData, isDarkMode }) => {
|
101 | 120 | <tbody>
|
102 | 121 | {items.map((item) => (
|
103 | 122 | <tr key={item.id}>
|
104 |
| - <td style={lightText}>{item.name}</td> |
| 123 | + <td style={lightText}> |
| 124 | + <FontAwesomeIcon |
| 125 | + icon={ |
| 126 | + distId === item.id && displayDist |
| 127 | + ? faArrowCircleDown |
| 128 | + : faArrowCircleRight |
| 129 | + } |
| 130 | + className="but" |
| 131 | + onClick={() => toggleDistView(item.id)} |
| 132 | + />{" "} |
| 133 | + {item.name} |
| 134 | + </td> |
105 | 135 | <td style={lightText}>{item.confirmed}</td>
|
106 | 136 | <td style={lightText}>{item.active}</td>
|
107 | 137 | <td style={lightText}>{item.discharged}</td>
|
|
0 commit comments