Disable touch drag & drop, warn on car delete with reservations, configure backend URL

Co-authored-by: pdf114514 <57948770+pdf114514@users.noreply.github.com>
Agent-Logs-Url: https://github.com/pdf114514/CarReservation/sessions/cd194ca1-b339-4f2f-b717-31a0ba193964
This commit is contained in:
copilot-swe-agent[bot]
2026-03-20 18:19:53 +00:00
parent 40371b43d1
commit c3dd0cfa69
7 changed files with 58 additions and 8 deletions

View File

@@ -4,6 +4,7 @@ import styles from './CarManagement.module.css';
export default function CarManagement() {
const [cars, setCars] = useState([]);
const [reservations, setReservations] = useState([]);
const [loading, setLoading] = useState(true);
const [error, setError] = useState(null);
const [newCarName, setNewCarName] = useState('');
@@ -16,8 +17,9 @@ export default function CarManagement() {
const loadCars = async () => {
try {
setLoading(true);
const data = await api.getCars();
setCars(data);
const [carsData, resData] = await Promise.all([api.getCars(), api.getReservations()]);
setCars(carsData);
setReservations(resData);
setError(null);
} catch (e) {
setError(e.message);
@@ -47,7 +49,11 @@ export default function CarManagement() {
};
const handleDelete = async (id, name) => {
if (!confirm(`${name}」を削除しますか?\n関連する予約もすべて削除されます。`)) return;
const carReservations = reservations.filter((r) => r.car_id === id);
const message = carReservations.length > 0
? `${name}」を削除しますか?\n⚠ この代車には ${carReservations.length} 件の予約があります。削除するとこれらの予約もすべて削除されます。`
: `${name}」を削除しますか?\n関連する予約もすべて削除されます。`;
if (!confirm(message)) return;
try {
await api.deleteCar(id);
await loadCars();