#conversation #humans # [[Epistemic status]] #shower-thought #to-digest # Changelog ```dataview TABLE WITHOUT ID file.mtime AS "Last Modified" FROM [[#]] SORT file.mtime DESC LIMIT 3 ``` # Related # TODO > [!TODO] TODO %% # Send me an anonymous feedback ```jsx: const T = () => { const [feedback, setFeedback] = useState("") const [done, setDone] = useState(false) const [loading, setLoading] = useState(false) const send = () => { setLoading(true) const url = "https://us-central1-louis030195-256110.cloudfunctions.net/insight" obsidian.request({ method: 'post', url: url, headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({"feedback": feedback}) }) .then((content) => console.info(`result ${content}`) ) .catch(err => { console.error(err) }) .finally((e) => { setDone(true) setLoading(false) }) } const l = [ "This is wrong...", "Louis is stupid because...", "You could try to explore..." ] return ( <div> <textarea disabled={done} placeholder={ l[Math.floor(Math.random() * l.length)] } cols="40" rows="5" value={feedback} onChange={(e) => setFeedback(e.target.value)} style={{ margin: "auto", width: "50%", height: "50px" }} /> <br/> <button disabled={done} onClick={() => send()} style={{ margin: "auto", width: "50%" }}> {loading ? "..." : done ? "Thanks" : "Send"} </button> </div> ) } <T/> ``` %% # Structured [[Conversation|conversation]] We're moving towards more structured conversation ![[Pasted image 20221025184948.png]] (https://www.youtube.com/watch?v=4AWLcxTGZPA) # External links