From 69ba0ccf7ce9234e81b7710f5113a723e6cae4a8 Mon Sep 17 00:00:00 2001 From: Romain Mallard Date: Fri, 2 Jan 2026 15:57:49 +0100 Subject: [PATCH] create item barebones --- src/components/HotelContext.jsx | 13 +++- src/components/widget/inventoryWidget.jsx | 46 +++++++++++- src/components/widget/roomWidget.jsx | 92 +++++++++++++++-------- 3 files changed, 116 insertions(+), 35 deletions(-) diff --git a/src/components/HotelContext.jsx b/src/components/HotelContext.jsx index c559ba2..16c566e 100644 --- a/src/components/HotelContext.jsx +++ b/src/components/HotelContext.jsx @@ -200,6 +200,16 @@ export function HotelProvider({ accessToken, children, resClientId}) { } + async function createItem(item_name, item_amount){ + + const res = await fetch ( `${API_BASE}/inventory/add_item/${item_name}/${item_amount}`, + { + method:"POST", + headers: { Authorization: `Bearer ${accessTokenSingle}` } + }); + + } + async function fetchHotelUsers() { const res = await fetch(`${API_BASE}/chat/hotel_users`, { method: "POST", @@ -261,7 +271,8 @@ export function HotelProvider({ accessToken, children, resClientId}) { addUserToConv, createConversation, fetchHotelInventory, - updateItemAmount + updateItemAmount, + createItem }} > {children} diff --git a/src/components/widget/inventoryWidget.jsx b/src/components/widget/inventoryWidget.jsx index 3d40ac3..fce8eee 100644 --- a/src/components/widget/inventoryWidget.jsx +++ b/src/components/widget/inventoryWidget.jsx @@ -22,8 +22,8 @@ export default function InventoryWidget({}) { }, []) return ( - -
+
+
{items.map(item => ( ))} -
+
+
+ +
+
+ ) } @@ -73,4 +78,37 @@ function ItemCard({id, name, amount}) { ) -} \ No newline at end of file +} + + +function CreateItemMenu() { + const [itemName, setItemName] = useState(""); + const [itemAmount, setItemAmount] = useState(0); + const {createItem} = useHotel(); + + + const handleSubmit = () => { + if (!itemName.trim() | !itemAmount.trim() ) return; + + createItem(itemName, itemAmount); + + } + + return( +
+ setItemName(element.target.value)} + placeholder="Nom de l'objet" + /> + setItemAmount(element.target.value)} + placeholder="Montant d'objet(s)" + /> + +
+ ) + +} + diff --git a/src/components/widget/roomWidget.jsx b/src/components/widget/roomWidget.jsx index e3fd2e2..1dfd277 100644 --- a/src/components/widget/roomWidget.jsx +++ b/src/components/widget/roomWidget.jsx @@ -14,55 +14,87 @@ export default function RoomWidget({ roomlist }) { status={room.status} /> ))} - + ); } function RoomCard({ number, status ,id}) { const { updateRoomStatus } = useHotel(); - const [editing, setEditing] = useState(false); + const [editingAmount, setEditingAmount] = useState(false); const [value, SetValue] = useState(status); function submit() { updateRoomStatus(id,value); - setEditing(false); + setEditingAmount(false); } return (
-

Room {number}

-

Id {id}

+

Room {number}

+

Id {id}

- {!editing ?( -

setEditing(true)} style={{ cursor: "pointer" }}> - Status: {status} -

- ): ( -
- SetValue(e.target.value)} - onKeyDown={e => e.key === "Enter" && submit()} - /> + {!editingAmount ?( +

setEditingAmount(true)} style={{ cursor: "pointer" }}> + Status: {status} +

+ ): ( +
+ SetValue(e.target.value)} + onKeyDown={e => e.key === "Enter" && submit()} + /> +
+ )} + + +
+ + +
- )} - - -
- - - -
); } +function CreateItemMenu() { + const [itemName, setItemName] = useState(""); + const [itemAmount, setItemAmount] = useState(0); + const {createItem} = useHotel(); + + + const handleSubmit = () => { + if (!itemName.trim() | !itemAmount.trim() ) return; + + createItem(itemName, itemAmount); + + } + + return( +
+ setItemName(element.target.value)} + placeholder="Nom de l'objet" + /> + setItemAmount(element.target.value)} + placeholder="Montant d'objet(s)" + /> + +
+ ) + +} + + //export default roomWidget \ No newline at end of file