"use client"; import { createUserLevel, editUserLevel, getUserLevel, } from "@/service/master-user-level"; import { Button } from "@nextui-org/button"; import { RootRaws } from "postcss/lib/root"; import React, { useEffect, useState } from "react"; // Define the shape of the parsed data interface CSVRow { id: string; parent: string; name: string; level_number: string; group: string; } export default function MappingUserLevel() { const [parsedData, setParsedData] = useState(null); const [level2, setLevel2] = useState(); // Function to parse the CSV data function parseCSV(csvText: string): CSVRow[] { const rows = csvText.split("\n"); const headers = rows[0].split("\t"); // Assuming tab-delimited CSV const data: CSVRow[] = []; for (let i = 1; i < rows.length; i++) { const row = rows[i].split("\t"); // Skip empty rows or rows that don't have the correct number of columns if ( row.length === headers.length && row.some((cell) => cell.trim() !== "") ) { const temp = row[0].split(";"); if (temp[0] !== "") { temp[4].replace("/r", ""); const rowData: CSVRow = { id: temp[0], parent: temp[1], name: temp[2], level_number: temp[3], group: temp[4].replace("\r", ""), }; if (i <= 3) { console.log("i", rowData); } data.push(rowData); } } } return data; } // Handle the file input change event const handleFileChange = (event: React.ChangeEvent) => { const file = event.target.files?.[0]; if (file) { const reader = new FileReader(); reader.onload = function (e) { const csvText = e.target?.result as string; const data = parseCSV(csvText); console.log("data", data); setParsedData(data); }; reader.readAsText(file); } }; const doPostData = async () => { if (parsedData) { let level2Now = undefined; for (let i = 0; i < parsedData.length; i++) { const temp = parsedData[i]; if (temp.level_number === "2") { const request = { aliasName: temp.group, isActive: true, levelNumber: 2, name: temp.name, parentLevelId: 79, provinceId: 0, }; const res = await createUserLevel(request); if (res?.error) { break; } setLevel2(res?.data?.data?.id); console.log("res?.data?.data?.id", res?.data?.data?.id); level2Now = res?.data?.data?.id; } else if (temp.level_number === "3") { const request = { aliasName: temp.group, isActive: true, levelNumber: 3, name: temp.name, parentLevelId: level2 || level2Now, provinceId: 0, }; console.log("reqqq", request); const res = await createUserLevel(request); if (res?.error) { break; } } else { console.log("data", temp); // const request = { // aliasName: temp.group, // isActive: true, // levelNumber: 1, // name: temp.name, // parentLevelId: 1, // provinceId: 0, // }; // const res = await createUserLevel(request); // console.log("ress", res?.data?.data?.id); } } } }; useEffect(() => { initFecth(); }, []); const initFecth = async () => { const res = await getUserLevel(); const data = res?.data?.data; console.log("dataa", data); // for (const element of data) { // if (element.aliasName === "satker") { // console.log("namanya", element.id); // const request = { // aliasName: element.aliasName, // levelNumber: 2, // name: element.name, // parentLevelId: 692, // provinceId: 0, // }; // console.log("reqq", request); // const response = await editUserLevel(request, element.id); // if (response?.error) { // break; // } // } // } }; return (

Mapping User Level

{/* File input */} {/* Display parsed data */} {parsedData && (

Parsed Data:

{JSON.stringify(parsedData, null, 2)}
)}
); }