rewrite availability form

This commit is contained in:
Dobromir Popov
2024-03-03 02:52:41 +02:00
parent e52d962c49
commit 193dd91605
4 changed files with 229 additions and 314 deletions

View File

@ -95,27 +95,19 @@ export default function AvailabilityList({ publisher, showNew }) {
<AvailabilityForm
publisherId={publisher.id}
inline={true}
existingItem={selectedItem}
existingItems={selectedItem ? [selectedItem] : []}
date={selectedItem ? new Date(selectedItem.startTime) : new Date()}
onDone={(item) => {
toggleAv();
setSelectedItem(null);
if (!item) {
// remove selected item from state
const updatedItems = items.filter(i => i.id !== selectedItem.id);
setItems([...updatedItems]);
return;
};
const itemIndex = items.findIndex(i => i.id === item.id); // assuming each item has a unique 'id' property
if (itemIndex !== -1) {
// Replace the existing item with the updated item
const updatedItems = [...items];
updatedItems[itemIndex] = item;
setItems(updatedItems);
} else {
// Append the new item to the end of the list
setItems([...items, item]);
}
//get the updated list of availabilities from the server
axiosInstance.get(common.getBaseUrl("/api/data/availabilities"))
.then(({ data: items }) => {
setItems(items);
})
.catch(error => {
console.error("Error getting availabilities:", error);
});
}}
/>
)}