import { useEffect, useState } from "react"; import axios from "axios"; interface Diary { date: string; visibility: string; weather: string; id: number; comment: string; } function App() { const [date, setDate] = useState(""); const [visibility, setVisibility] = useState(""); const [weather, setWeather] = useState(""); const [comment, setComment] = useState(""); const addDiary = async (e: React.SyntheticEvent) => { e.preventDefault(); const newDiaryEntry: Diary = { date, visibility, weather, id: diaries.length, comment, }; try { const resp = await axios.post( "http://localhost:3003/api/diaries", newDiaryEntry ); setDiaries([...diaries, resp.data]); } catch (error) { if (axios.isAxiosError(error)) { window.alert(error.response?.data); } else { console.error(error); } } setDate(""); setVisibility(""); setWeather(""); setComment(""); }; const [diaries, setDiaries] = useState[]>([]); useEffect(() => { axios .get[]>("http://localhost:3003/api/diaries") .then((resp) => setDiaries(resp.data)) .catch((err) => console.log(err.message)); }, []); return ( <>

add diary

date setDate(e.target.value)} />
comment setComment(e.target.value)} />

diray entries

{diaries ? (
    {diaries.map((el) => (
  • {el.date} visibility: {el.visibility} weather: {el.weather}
  • ))}
) : null} ); } export default App;