|
@@ -1,11 +1,38 @@
|
|
|
-import React from 'react';
|
|
|
+import React, { useState, useEffect } from 'react';
|
|
|
import { getHealth, getAvailability, setAvailability } from './api';
|
|
|
|
|
|
+const NameForm = ({ onNameSet }) => {
|
|
|
+ const [name, setName] = useState("");
|
|
|
+
|
|
|
+ return (
|
|
|
+ <div>
|
|
|
+ <input type="text" onChange={({ target }) => setName(target.value)}></input>
|
|
|
+ <button disabled={name === ""} onClick={onNameSet}>Set Name</button>
|
|
|
+ </div>
|
|
|
+ )
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
function App() {
|
|
|
+ const [name, setName] = useState(null);
|
|
|
+ const [avail, setAvail] = useState(null);
|
|
|
+ useEffect(() => { getAvailability().then(setAvail) }, []);
|
|
|
+
|
|
|
+
|
|
|
+ if (name === null) {
|
|
|
+ return <NameForm onNameSet={setName} />
|
|
|
+ }
|
|
|
+
|
|
|
+ if (avail === null) {
|
|
|
+ return <span>Loading...</span>
|
|
|
+ }
|
|
|
+
|
|
|
return (
|
|
|
<div>
|
|
|
+ {JSON.stringify(avail)}
|
|
|
<button onClick={() => getHealth().then(console.log)}>Get Status</button>
|
|
|
- <button onClick={() => getAvailability().then(console.log)}>Get Avail</button>
|
|
|
+ <button onClick={() => getAvailability().then(setAvail)}>Get Avail</button>
|
|
|
<button onClick={() => setAvailability({})}>Set Avail</button>
|
|
|
</div>
|
|
|
);
|