From e706aca120c3e07a5d4b561b963a05442637b345 Mon Sep 17 00:00:00 2001 From: Alex Wellnitz Date: Wed, 25 Sep 2024 14:57:17 +0200 Subject: [PATCH] Feature/parse user input (#1) * feat(frontend): add parsing module for gear parsing * fix(frontend): remove tabard and shirt from gear parsing * feat(frontend): add show gear list support --- frontend/src/app/ui/forms/simCurrentGear.tsx | 11 ++ .../app/ui/snippets/gear-parser.module.css | 20 ++ frontend/src/app/ui/snippets/gear-parser.tsx | 178 ++++++++++++++++++ 3 files changed, 209 insertions(+) create mode 100644 frontend/src/app/ui/snippets/gear-parser.module.css create mode 100644 frontend/src/app/ui/snippets/gear-parser.tsx diff --git a/frontend/src/app/ui/forms/simCurrentGear.tsx b/frontend/src/app/ui/forms/simCurrentGear.tsx index 74403b2..a2a1b94 100644 --- a/frontend/src/app/ui/forms/simCurrentGear.tsx +++ b/frontend/src/app/ui/forms/simCurrentGear.tsx @@ -2,11 +2,14 @@ import { useState } from "react"; import styles from "../../page.module.css"; +import { GearParser, ParseGearData, ParsedGear } from "../snippets/gear-parser"; export function SimCurrentGear() { + const parsedGearList: ParsedGear[] = []; const [isFetched, setIsFetched] = useState(false); const [fetchedData, setFetchedData] = useState(""); const [isLoading, setIsLoading] = useState(false); + const [parsedData, setParsedData] = useState(parsedGearList); async function fetchSimResult(formData: FormData) { try { @@ -37,6 +40,10 @@ export function SimCurrentGear() { } } + async function parseGearFromText() { + setParsedData(ParseGearData()); + } + return (
parseGearFromText()} style={{ display: `${isLoading ? "none" : "block"}`, }} />
+
+ +