From 99cf435e91b323d5cb9af2acf0dbb77d44b64e9b Mon Sep 17 00:00:00 2001 From: Peter Wolf <84736182+peterwolf-pl@users.noreply.github.com> Date: Sat, 1 Nov 2025 22:07:46 +0100 Subject: [PATCH] Add JSON save option to letter field generator --- LetterFieldGenerator.jsx | 69 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 64 insertions(+), 5 deletions(-) diff --git a/LetterFieldGenerator.jsx b/LetterFieldGenerator.jsx index da7eafc..7c9f479 100644 --- a/LetterFieldGenerator.jsx +++ b/LetterFieldGenerator.jsx @@ -16,6 +16,7 @@ export default function LetterFieldGenerator() { const [step, setStep] = useState(0); // 0: pierwszy klik, 1: drugi klik const [clicks, setClicks] = useState([]); const [fields, setFields] = useState([]); + const [fileName, setFileName] = useState("fields.json"); const [literaIdx, setLiteraIdx] = useState(0); const kasztaRef = useRef(); @@ -71,6 +72,27 @@ export default function LetterFieldGenerator() { } } + const fieldsJson = fields.length > 0 + ? JSON.stringify(fields, null, 2) + : "[]"; + + function handleSaveToFile() { + const safeName = (fileName && fileName.trim()) || "fields.json"; + const finalName = safeName.toLowerCase().endsWith(".json") + ? safeName + : `${safeName}.json`; + + const blob = new Blob([fieldsJson], { type: "application/json" }); + const url = URL.createObjectURL(blob); + const link = document.createElement("a"); + link.href = url; + link.download = finalName; + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + URL.revokeObjectURL(url); + } + return (
@@ -164,22 +186,59 @@ return (