import axios from "axios";
export const API_SERVER_HOST = "http://localhost:8080";
const prefix = `${API_SERVER_HOST}/api/todo`;
export const getOne = async (tno) => {
const res = await axios.get(`${prefix}/$tno}`);
return res.data;
};
export const getList = async (pageParam) => {
const { page, size } = pageParam;
const res = await axios.get(`${prefix}/list`, {
params: { page: page, size: size },
});
return res.data;
};
import { useEffect, useState } from "react";
import { getOne } from "../../api/todoApi";
const initState = {
tno: 0,
title: "",
writer: "",
dueDate: "",
complete: false,
};
function ReadComponent({ tno }) {
const [todo, setTodo] = useState(initState);
useEffect(() => {
getOne(tno).then((data) => {
console.log(data);
setTodo(data);
});
}, [tno]);
return (
<div className="border-2 border-sky-200 mt-10 m-2 =-4">
{makeDiv("Tno", todo.tno)}
{makeDiv("Writer", todo.writer)}
{makeDiv("Title", todo.title)}
{makeDiv("Due Date", todo.dueDate)}
{makeDiv("Complete", todo.complete ? "Completed" : "Not Yet")}
</div>
);
}
const makeDiv = (title, value) => (
<div className="flex justify-center">
<div className="relative mb-4 flex w-full flex-wrap items-stretch">
<div className="w-1/5 p-6 text-right font-bold">{title}</div>
<div className="w-4/5 p-6 rounded-r border border-solid shadow-md">
{value}
</div>
</div>
</div>
);
export default ReadComponent;