diff --git a/src/pages/Character/index.js b/src/pages/Character/index.js
index a09877a..3919626 100644
--- a/src/pages/Character/index.js
+++ b/src/pages/Character/index.js
@@ -1,72 +1,80 @@
import "./styles.css";
+import { useEffect, useState } from "react";
+
import Container from "../../layouts/Container/index.js";
-import data from "../../data/data.js";
+import allData from "../../data/data.js";
const Character = () => {
- var arrayToDelete = [];
- const setToDelete = (id) => {
- arrayToDelete.push(id);
- };
- const makeItComeBack = (id) => {
- arrayToDelete = arrayToDelete.filter((item) => item !== id);
- };
+ const [data, setData] = useState();
- const submitJSON = () => {
- console.log(arrayToDelete);
- console.log(data);
- console.log(
- JSON.stringify(data.filter((item) => !arrayToDelete.includes(item._id)))
- );
+ useEffect(() => {
+ const filterDataByFolder = (folderId) => {
+ const filteredData = allData.filter((item) => item.folder === folderId);
+
+ return filteredData.map((item) => {
+ const subItems = filterDataByFolder(item._id);
+ return {
+ ...item,
+ subItems,
+ };
+ });
+ };
+
+ const mainFolders = allData.filter((item) => item.folder === null);
+ const filteredData = mainFolders.map((item) => {
+ const subItems = filterDataByFolder(item._id);
+ return {
+ ...item,
+ subItems,
+ };
+ });
+
+ setData(filteredData);
+ }, [setData]);
+
+ const renderSubItems = (subItems) => {
+ if (subItems?.length === 0) {
+ return subItems?.length !== 0 ? (
+
+ {subItems?._id} - {subItems?.name}
+
+ ) : (
+ <>>
+ );
+ } else {
+ return subItems?.map((subItem, subId) => {
+ return (
+
+ {subItems?.length !== 0 ? (
+
+ {subItem?._id} - {subItem?.name} - {subItem?.folder}
+
+ ) : (
+ <>>
+ )}
+ {renderSubItems(subItem?.subItems)}
+
+ );
+ });
+ }
};
- //console.log(data.filter((item) => item.folder == null));
- var mainFolders = data.filter((item) => item.folder == null);
- for (let i = 0; i < mainFolders.length; i++) {
- console.log(mainFolders[i].name);
- var subFolders = data.filter((item) => item.folder == mainFolders[i]._id);
- console.log(subFolders);
- }
- //console.log(data.sort((item) => item.folder));
return (
- {data
- .sort((item) => item.folder)
- // .filter((item) => item.folder == "VsGby7ZZXOXbXFGN") -- TS globales
- .map((item, id) => {
- return (
-
-
-
{item.name}
-
- {
- e.target.parentNode.parentNode.style.backgroundColor =
- "white";
- makeItComeBack(item._id);
- }}
- >
- Give it Back
-
- {
- e.target.parentNode.parentNode.style.backgroundColor =
- "green";
- setToDelete(item._id);
- }}
- >
- X
-
-
-
- );
- })}
-
- Valider
+ {data?.map((item, id) => (
+
+
+ {item?._id} - {item?.name}
+
+ {renderSubItems(item?.subItems)}
+
+ ))}
);
diff --git a/src/pages/Character/styles.css b/src/pages/Character/styles.css
index 9b75472..b6d60f2 100644
--- a/src/pages/Character/styles.css
+++ b/src/pages/Character/styles.css
@@ -1 +1,5 @@
-.character {}
\ No newline at end of file
+.character {}
+
+.selected {
+ color: blue;
+}
\ No newline at end of file