Skip to content

Commit

Permalink
persist state on local storage
Browse files Browse the repository at this point in the history
  • Loading branch information
Alex-Costea committed Feb 11, 2024
1 parent 48b8511 commit c49a420
Showing 1 changed file with 43 additions and 9 deletions.
52 changes: 43 additions & 9 deletions wiles-web-frontend/components/app.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,37 @@
import {useState} from "react";
import {Dispatch, useEffect, useReducer} from "react";
import Cookies from 'js-cookie';

interface responseFormat{
response : string, errors : string
}

function usePersistedState(keyName : string, defaultValue : string)
{
function persistState(keyName : string)
{
return function(_prevState : string, value : string)
{
window.localStorage.setItem(keyName, value)
return value
}
}

const [state, setState] = useReducer(persistState(keyName),"")

useEffect(()=>{
const storedState = window.localStorage.getItem(keyName)
if(storedState !== null)
{
setState(storedState)
}
else
{
setState(defaultValue)
}
},[])

return [state, setState] as [string, Dispatch<string>]
}

function App() {
function getDomain()
Expand All @@ -14,10 +45,11 @@ function App() {
return domain
}

const [output, setOutput] = useState({response: '', errors: ''})
const [code, setCode] = useState(`let name := read_line()
writeline("Hello, " + name + "!")`)
const [input, setInput] = useState("Wiles")
const [output, setOutput] = usePersistedState("output", "")
const [errors, setErrors] = usePersistedState("errors", "")
const [code, setCode] = usePersistedState("code",
'let name := read_line()\nwriteline("Hello, " + name + "!")')
const [input, setInput] = usePersistedState("input", "Wiles")

async function GetXSRF()
{
Expand Down Expand Up @@ -50,8 +82,10 @@ writeline("Hello, " + name + "!")`)
code: code,
input: input
})
}).then(response => response.json()).then(response => {
setOutput(response)
}).then(response => response.json()).then(
(response : responseFormat) => {
setOutput(response.response)
setErrors(response.errors)
})
})
}
Expand Down Expand Up @@ -88,13 +122,13 @@ writeline("Hello, " + name + "!")`)
<label htmlFor="output">Output:</label>
</p>
<p>
<textarea disabled id="output" value={output.response}></textarea>
<textarea disabled id="output" value={output}></textarea>
</p>
<p>
<label htmlFor="errors">Errors:</label>
</p>
<p>
<textarea disabled id="errors" value={output.errors}></textarea>
<textarea disabled id="errors" value={errors}></textarea>
</p>
<p><a href={"https://alex.costea.in/Wiles/"}>Learn more about Wiles.</a></p>
</div>
Expand Down

0 comments on commit c49a420

Please sign in to comment.