Project Names

This commit is contained in:
brausjonas
2023-07-07 20:53:38 +02:00
parent b65d8b37cc
commit 953843c648
4 changed files with 45 additions and 13 deletions
+5 -2
View File
@@ -15,6 +15,7 @@ export default function App() {
const [loadIn, setLoadIn] = useState(null) const [loadIn, setLoadIn] = useState(null)
const [loadInId, setLoadInId] = useState(-1) const [loadInId, setLoadInId] = useState(-1)
const [shouldUpdate, setShouldUpdate] = useState(false) const [shouldUpdate, setShouldUpdate] = useState(false)
const [nameCurrent, setNameCurrent] = useState("")
useEffect(() => { useEffect(() => {
@@ -28,7 +29,7 @@ export default function App() {
setShowDrawing("block") setShowDrawing("block")
} }
function onLoadIn(save, id) { function onLoadIn(save, id, name) {
let image = new Image() let image = new Image()
image.onload = () => { image.onload = () => {
setWidthDrawing(image.width) setWidthDrawing(image.width)
@@ -37,6 +38,7 @@ export default function App() {
setShowForm("none") setShowForm("none")
setShowDrawing("block") setShowDrawing("block")
setLoadInId(id) setLoadInId(id)
setNameCurrent(name)
setShouldUpdate(!shouldUpdate) setShouldUpdate(!shouldUpdate)
} }
image.src = save image.src = save
@@ -49,7 +51,7 @@ export default function App() {
return ( return (
<div> <div>
<StartForm onOpenButtonClick={onOpenButtonClick} onLoadIn={onLoadIn} show={showForm} onCreateCanvas={onCreateCanvas}/> <StartForm onOpenButtonClick={onOpenButtonClick} onLoadIn={onLoadIn} show={showForm} onCreateCanvas={onCreateCanvas}/>
<Drawing shouldUpdate={shouldUpdate} loadInId={loadInId} loadIn={loadIn} show={showDrawing} <Drawing name={nameCurrent} shouldUpdate={shouldUpdate} loadInId={loadInId} loadIn={loadIn} show={showDrawing}
width={widthDrawing} height={heightDrawing}/> width={widthDrawing} height={heightDrawing}/>
<input onChange={() => { <input onChange={() => {
let file = fileInput.files[0] let file = fileInput.files[0]
@@ -65,6 +67,7 @@ export default function App() {
setShowForm("none") setShowForm("none")
setShowDrawing("block") setShowDrawing("block")
setShouldUpdate(!shouldUpdate) setShouldUpdate(!shouldUpdate)
setNameCurrent(file.name)
} }
image.src = e.target.result image.src = e.target.result
} }
+32 -8
View File
@@ -51,6 +51,10 @@ export default function Drawing(p) {
hintCanvas = document.getElementById("hintCanvas") hintCanvas = document.getElementById("hintCanvas")
hintContext = hintCanvas.getContext("2d") hintContext = hintCanvas.getContext("2d")
if(p.name !== "") {
setNameInput(p.name)
}
if (p.loadIn !== null) { if (p.loadIn !== null) {
console.log("test") console.log("test")
let image = new Image() let image = new Image()
@@ -97,6 +101,7 @@ export default function Drawing(p) {
const [textInputX, setTextInputX] = useState(0) const [textInputX, setTextInputX] = useState(0)
const [textInputY, setTextInputY] = useState(0) const [textInputY, setTextInputY] = useState(0)
const [showTextInput, setShowTextInput] = useState(false) const [showTextInput, setShowTextInput] = useState(false)
const [nameInput, setNameInput] = useState("")
class Position { class Position {
@@ -272,7 +277,12 @@ export default function Drawing(p) {
let image = new Image() let image = new Image()
image.src = "data:image/png;base64," + img image.src = "data:image/png;base64," + img
downLink.href = img downLink.href = img
downLink.download = "export.png" if(nameInput !== "") {
downLink.download = nameInput + ".png"
}
else {
downLink.download = "export.png"
}
downLink.click() downLink.click()
} }
@@ -281,13 +291,15 @@ export default function Drawing(p) {
let blob = new Blob([img], {type: "text/plain"}) let blob = new Blob([img], {type: "text/plain"})
var url = URL.createObjectURL(blob) var url = URL.createObjectURL(blob)
downLink.href = url downLink.href = url
downLink.download = "save.redraw" if(nameInput !== "") {
downLink.download = nameInput + ".redraw"
}
else {
downLink.download = "save.redraw"
}
downLink.click() downLink.click()
} }
function onOpenButtonClick() {
fileInput.click()
}
function handleToolChange(e) { function handleToolChange(e) {
setShowTextInput(false) setShowTextInput(false)
@@ -405,6 +417,18 @@ export default function Drawing(p) {
d="M2 8a1 1 0 1 1 0 2 1 1 0 0 1 0-2zm0-3a1 1 0 1 1 0 2 1 1 0 0 1 0-2zm3 3a1 1 0 1 1 0 2 1 1 0 0 1 0-2zm0-3a1 1 0 1 1 0 2 1 1 0 0 1 0-2zm3 3a1 1 0 1 1 0 2 1 1 0 0 1 0-2zm0-3a1 1 0 1 1 0 2 1 1 0 0 1 0-2zm3 3a1 1 0 1 1 0 2 1 1 0 0 1 0-2zm0-3a1 1 0 1 1 0 2 1 1 0 0 1 0-2zm3 3a1 1 0 1 1 0 2 1 1 0 0 1 0-2zm0-3a1 1 0 1 1 0 2 1 1 0 0 1 0-2z"/> d="M2 8a1 1 0 1 1 0 2 1 1 0 0 1 0-2zm0-3a1 1 0 1 1 0 2 1 1 0 0 1 0-2zm3 3a1 1 0 1 1 0 2 1 1 0 0 1 0-2zm0-3a1 1 0 1 1 0 2 1 1 0 0 1 0-2zm3 3a1 1 0 1 1 0 2 1 1 0 0 1 0-2zm0-3a1 1 0 1 1 0 2 1 1 0 0 1 0-2zm3 3a1 1 0 1 1 0 2 1 1 0 0 1 0-2zm0-3a1 1 0 1 1 0 2 1 1 0 0 1 0-2zm3 3a1 1 0 1 1 0 2 1 1 0 0 1 0-2zm0-3a1 1 0 1 1 0 2 1 1 0 0 1 0-2z"/>
</svg> </svg>
</div> </div>
<input type={"text"} placeholder={"Enter Name"} style={{
borderWidth: 0,
boxShadow: "0 0 5px gray",
borderRadius: 15,
padding: 10,
pointerEvents: "auto"
}} value={nameInput} onChange={e => {
setNameInput(e.currentTarget.value)
}}/>
<div style={{ <div style={{
display: menuBarShown ? "flex" : "none", display: menuBarShown ? "flex" : "none",
justifyContent: "center", justifyContent: "center",
@@ -684,14 +708,14 @@ export default function Drawing(p) {
if (arrString !== null) { if (arrString !== null) {
let json = JSON.parse(arrString) let json = JSON.parse(arrString)
if (p.loadInId === -1) { if (p.loadInId === -1) {
json.arr.push(new Save(save)) json.arr.push(new Save(save, nameInput))
localStorage.setItem("save", JSON.stringify(json)) localStorage.setItem("save", JSON.stringify(json))
} else { } else {
for(let i = 0; i < json.arr.length; i++) { for(let i = 0; i < json.arr.length; i++) {
if(parseInt(json.arr[i].id) === p.loadInId) { if(parseInt(json.arr[i].id) === p.loadInId) {
json.arr[i] = new Save(save) json.arr[i] = new Save(save, nameInput)
localStorage.setItem("save", JSON.stringify(json)) localStorage.setItem("save", JSON.stringify(json))
break break
} }
@@ -699,7 +723,7 @@ export default function Drawing(p) {
} }
} else { } else {
let json = { let json = {
arr: [new Save(save)] arr: [new Save(save, nameInput)]
} }
localStorage.setItem("save", JSON.stringify(json)) localStorage.setItem("save", JSON.stringify(json))
} }
+7 -2
View File
@@ -1,9 +1,14 @@
export class Save { export class Save {
constructor(content) { constructor(content, name) {
let localID = localStorage.getItem("id") let localID = localStorage.getItem("id")
this.id = 0 this.id = 0
let now = new Date() let now = new Date()
this.name = now.getFullYear() + "." + (now.getMonth() + 1)+ "." + now.getDate() + "-" + now.getHours() + ":" + now.getMinutes() + ":" + now.getSeconds() if(name === "") {
this.name = now.getFullYear() + "." + (now.getMonth() + 1) + "." + now.getDate() + "-" + now.getHours() + ":" + now.getMinutes() + ":" + now.getSeconds()
}
else {
this.name = name
}
if(localID !== null) { if(localID !== null) {
this.id = parseInt(localID) + 1 this.id = parseInt(localID) + 1
localStorage.setItem("id", this.id) localStorage.setItem("id", this.id)
+1 -1
View File
@@ -119,7 +119,7 @@ export default function StartForm(p) {
minWidth: 80, minWidth: 80,
}} onClick={(f) => { }} onClick={(f) => {
if(f.target === f.currentTarget) { if(f.target === f.currentTarget) {
p.onLoadIn(e.content, e.id) p.onLoadIn(e.content, e.id, e.name)
} }
}}><p style={{userSelect: "none", pointerEvents: "none"}}>{e.name}</p> }}><p style={{userSelect: "none", pointerEvents: "none"}}>{e.name}</p>
<button style={{ <button style={{