Changeset 65b6638 for my-react-app/src/App.js
- Timestamp:
- 02/28/24 18:44:19 (15 months ago)
- Branches:
- main
- Children:
- 75f5086
- Parents:
- d24f17c
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
my-react-app/src/App.js
rd24f17c r65b6638 11 11 import ReservationConfirmation from "./components/ReservationConfirmation"; 12 12 import ReservationEdit from "./components/ReservationEdit"; 13 import axios from "axios"; 13 14 14 15 const App = () => { … … 50 51 const isToday = selectedDate.toDateString() === today.toDateString(); 51 52 52 const startHour = isToday ? today.getHours() : 9; 53 const startMinute = isToday ? Math.ceil(today.getMinutes() / 15) * 15 : 0; 53 // Determine the start hour and minute 54 let startHour = 9; 55 let startMinute = 0; 56 if (isToday) { 57 const currentHour = today.getHours(); 58 const currentMinute = today.getMinutes(); 59 // If current time is later than 09:00, start from the current hour and minute 60 if (currentHour > 9 || (currentHour === 9 && currentMinute >= 0)) { 61 startHour = currentHour; 62 startMinute = Math.ceil(currentMinute / 15) * 15; 63 } 64 } 54 65 55 let currentTime = new Date(selectedDate.getFullYear(), selectedDate.getMonth(), selectedDate.getDate(), startHour, startMinute); 66 // Create the start time and end time 67 const startTime = new Date(selectedDate.getFullYear(), selectedDate.getMonth(), selectedDate.getDate(), startHour, startMinute); 56 68 const endTime = new Date(selectedDate.getFullYear(), selectedDate.getMonth(), selectedDate.getDate(), 23, 30); 57 69 70 // Generate time slots from start time to end time in 15-minute intervals 58 71 const slots = []; 72 let currentTime = new Date(startTime); 59 73 while (currentTime <= endTime) { 60 74 const option = currentTime.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit', hour12: false }); … … 63 77 } 64 78 79 // Update the timeSlots state 65 80 setTimeSlots(slots); 66 81 } 67 82 }, [date]); 83 68 84 69 85 const handleDateChange = (e) => { … … 83 99 }; 84 100 85 const handleSubmit = (e) => {101 const handleSubmit = async (e) => { 86 102 e.preventDefault(); 87 console.log(date); 88 console.log(selectedTime); 89 console.log(numPeople); 90 console.log(searchValue); 103 const [year, month, day] = date.split("-"); 104 105 let formattedDateTime; 106 const [selectedHours, selectedMinutes] = selectedTime.split(":"); 107 // Check if selectedHours and selectedMinutes are valid numbers 108 if (!isNaN(selectedHours) && !isNaN(selectedMinutes)) { 109 const dateTime = new Date(Date.UTC(year, month - 1, day, selectedHours, selectedMinutes)); 110 formattedDateTime = dateTime.toISOString().slice(0, 16).replace('T', ' '); 111 } else { 112 // Default values if selectedTime is not valid 113 const now = new Date(); 114 let defaultTime; 115 if (now.getHours() >= 9 && now.getHours() <= 23) { 116 defaultTime = now; 117 } else { 118 defaultTime = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 9, 0); // Set to 09:00 if current time is before 09:00 119 } 120 const dateTime = new Date(Date.UTC(year, month - 1, day, defaultTime.getHours(), defaultTime.getMinutes())); 121 formattedDateTime = dateTime.toISOString().slice(0, 16).replace('T', ' '); 122 } 123 124 const data = { 125 dateTime: formattedDateTime, 126 partySize: numPeople, 127 search: searchValue 128 }; 129 130 console.log("pecatam data pod mene") 131 console.log(data) 132 133 try { 134 const response = await axios.post('http://localhost:8080/api/search', data); 135 const filteredRestaurants = response.data; 136 console.log(filteredRestaurants); 137 // Handle response accordingly 138 } catch (error) { 139 console.error('Error:', error); 140 } 91 141 }; 92 142 93 const today = new Date().toISOString().split('T')[0]; 143 144 145 // Rest of your component code... 146 147 const today = new Date(); 148 const year = today.getFullYear(); 149 const month = String(today.getMonth() + 1).padStart(2, '0'); 150 const day = String(today.getDate()).padStart(2, '0'); 151 const formattedDate = `${year}-${month}-${day}`; 152 94 153 95 154 return ( … … 100 159 <div className="col-auto"> 101 160 <input className="form-control me-2" type="date" value={date} onChange={handleDateChange} 102 min={ today}/>161 min={formattedDate}/> 103 162 </div> 104 163 <div className="col-auto">
Note:
See TracChangeset
for help on using the changeset viewer.