From a910e4158815bd0934a141d1779330f119dfea29 Mon Sep 17 00:00:00 2001 From: vikingowl Date: Sun, 6 Jul 2025 18:09:00 +0200 Subject: [PATCH] Add character data structure and Tabs component --- index.html | 1 - src/App.tsx | 30 +- src/assets/data/Faelyn Eichenhauch.json | 285 +++++++++++++++++- src/modules/main/components/Main.tsx | 13 +- src/modules/main/components/Tabs.tsx | 150 +++++++++ .../attributes/components/Attributes.tsx | 5 + .../main/modules/combat/components/Combat.tsx | 5 + .../equipment/components/Equipment.tsx | 5 + .../main/modules/magic/components/Magic.tsx | 5 + .../main/modules/notes/components/Notes.tsx | 5 + .../modules/religion/components/Religion.tsx | 5 + .../sheetHeader/components/SheetHeader.tsx | 110 +++++++ .../main/modules/skills/components/Skills.tsx | 5 + .../main/modules/state/components/State.tsx | 5 + src/types/CharacterJson.ts | 109 +++++++ 15 files changed, 728 insertions(+), 10 deletions(-) create mode 100644 src/modules/main/components/Tabs.tsx create mode 100644 src/modules/main/modules/attributes/components/Attributes.tsx create mode 100644 src/modules/main/modules/combat/components/Combat.tsx create mode 100644 src/modules/main/modules/equipment/components/Equipment.tsx create mode 100644 src/modules/main/modules/magic/components/Magic.tsx create mode 100644 src/modules/main/modules/notes/components/Notes.tsx create mode 100644 src/modules/main/modules/religion/components/Religion.tsx create mode 100644 src/modules/main/modules/sheetHeader/components/SheetHeader.tsx create mode 100644 src/modules/main/modules/skills/components/Skills.tsx create mode 100644 src/modules/main/modules/state/components/State.tsx create mode 100644 src/types/CharacterJson.ts diff --git a/index.html b/index.html index 2e7619f..aebd9f1 100644 --- a/index.html +++ b/index.html @@ -2,7 +2,6 @@ - DSA 5e Charakterbogen diff --git a/src/App.tsx b/src/App.tsx index 37640c9..960336f 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,14 +1,38 @@ import './App.css' -import Header from "./modules/header/components/Header.tsx"; import Main from "./modules/main/components/Main.tsx"; import Footer from "./modules/footer/components/Footer.tsx"; +import {useEffect, useState} from "react"; +import type {CharacterData} from "./types/CharacterJson.ts"; function App() { + const [jsonData, setJsonData] = useState(null); + const [loading, setLoading] = useState(true); + + useEffect(() => { + const loadData = async () => { + try { + const data = await import('./assets/data/Faelyn Eichenhauch.json'); + setJsonData(data.default); + } catch (error) { + console.error('Error loading JSON file:', error); + } finally { + setLoading(false); + } + }; + + loadData(); + }, []); + + if (loading) return
Loading...
; + + if (!jsonData) return
Error loading JSON file.
; + + return ( <> -
+ {/*
*/} -
+