From 302bdff0523d08307cd38d856a7502c5ae6fd84f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20He=C3=9Fe?= Date: Tue, 4 Aug 2026 01:05:39 +0200 Subject: [PATCH] Key-Features now editable Section headers editable Added markdown to text fields --- src/components/AdminCMSModal.tsx | 201 +++++++++++++++++++++++++++- src/components/GallerySection.tsx | 7 +- src/components/MarkdownRenderer.tsx | 87 ++++++++++++ src/components/NewsSection.tsx | 18 ++- src/components/ProgressSection.tsx | 16 ++- src/components/StoryTabsSection.tsx | 20 ++- src/data/defaultCMS.ts | 10 ++ src/types.ts | 11 ++ 8 files changed, 347 insertions(+), 23 deletions(-) create mode 100644 src/components/MarkdownRenderer.tsx diff --git a/src/components/AdminCMSModal.tsx b/src/components/AdminCMSModal.tsx index 31e8756..6ee1a53 100644 --- a/src/components/AdminCMSModal.tsx +++ b/src/components/AdminCMSModal.tsx @@ -1,5 +1,5 @@ import React, { useState, useEffect, useRef } from "react"; -import { X, Lock, Save, RotateCcw, Download, Upload, Plus, Trash2, Check, Sparkles, Layout, BookOpen, Image as ImageIcon, Newspaper, BarChart3, KeyRound, AlertCircle } from "lucide-react"; +import { X, Lock, Save, RotateCcw, Download, Upload, Plus, Trash2, Check, Sparkles, Layout, BookOpen, Image as ImageIcon, Newspaper, BarChart3, KeyRound, AlertCircle, FileText } from "lucide-react"; import { CMSData, StoryTab, ScreenshotItem, NewsPost, DevCategoryProgress, Milestone } from "../types"; // Helper function to process and compress uploaded images to sharp Base64 Data URLs @@ -170,7 +170,7 @@ export const AdminCMSModal: React.FC = ({ const [pinInput, setPinInput] = useState(""); const [pinError, setPinError] = useState(false); - const [activeTab, setActiveTab] = useState<"hero" | "story" | "gallery" | "news" | "progress" | "backup">("hero"); + const [activeTab, setActiveTab] = useState<"hero" | "sections" | "story" | "gallery" | "news" | "progress" | "backup">("hero"); // Local draft state for editing - sync when cms updates const [formData, setFormData] = useState(cms); @@ -460,6 +460,18 @@ export const AdminCMSModal: React.FC = ({ Allgemein & Hero + + + {/* Markdown Info Banner */} +
+ +
+ Vollständiges Markdown unterstützt: Du kannst in allen Inhalts- und News-Feldern Markdown nutzen (z.B. **Fett**, *Kursiv*, - Aufzählungspunkte, 1. Nummerierte Listen, ### Überschriften etc.). +
+
+ {formData.tabs.map((tab, idx) => (
@@ -679,7 +839,9 @@ export const AdminCMSModal: React.FC = ({
- +