create item barebones

This commit is contained in:
2026-01-02 15:57:49 +01:00
parent 7708df3410
commit 69ba0ccf7c
3 changed files with 116 additions and 35 deletions

View File

@@ -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() { async function fetchHotelUsers() {
const res = await fetch(`${API_BASE}/chat/hotel_users`, { const res = await fetch(`${API_BASE}/chat/hotel_users`, {
method: "POST", method: "POST",
@@ -261,7 +271,8 @@ export function HotelProvider({ accessToken, children, resClientId}) {
addUserToConv, addUserToConv,
createConversation, createConversation,
fetchHotelInventory, fetchHotelInventory,
updateItemAmount updateItemAmount,
createItem
}} }}
> >
{children} {children}

View File

@@ -22,7 +22,7 @@ export default function InventoryWidget({}) {
}, []) }, [])
return ( return (
<div>
<div className="grid"> <div className="grid">
{items.map(item => ( {items.map(item => (
<ItemCard <ItemCard
@@ -34,6 +34,11 @@ export default function InventoryWidget({}) {
))} ))}
</div> </div>
<div>
<CreateItemMenu/>
</div>
</div>
) )
@@ -74,3 +79,36 @@ function ItemCard({id, name, amount}) {
) )
} }
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(
<div>
<input
type="text"
onChange={element => setItemName(element.target.value)}
placeholder="Nom de l'objet"
/>
<input
type="text"
onChange={element => setItemAmount(element.target.value)}
placeholder="Montant d'objet(s)"
/>
<button onClick={handleSubmit}>Creer</button>
</div>
)
}

View File

@@ -21,12 +21,12 @@ export default function RoomWidget({ roomlist }) {
function RoomCard({ number, status ,id}) { function RoomCard({ number, status ,id}) {
const { updateRoomStatus } = useHotel(); const { updateRoomStatus } = useHotel();
const [editing, setEditing] = useState(false); const [editingAmount, setEditingAmount] = useState(false);
const [value, SetValue] = useState(status); const [value, SetValue] = useState(status);
function submit() { function submit() {
updateRoomStatus(id,value); updateRoomStatus(id,value);
setEditing(false); setEditingAmount(false);
} }
return ( return (
@@ -34,8 +34,8 @@ function RoomCard({ number, status ,id}) {
<h3>Room {number}</h3> <h3>Room {number}</h3>
<h4>Id {id}</h4> <h4>Id {id}</h4>
{!editing ?( {!editingAmount ?(
<p onClick={() => setEditing(true)} style={{ cursor: "pointer" }}> <p onClick={() => setEditingAmount(true)} style={{ cursor: "pointer" }}>
Status: {status} Status: {status}
</p> </p>
): ( ): (
@@ -65,4 +65,36 @@ function RoomCard({ number, status ,id}) {
); );
} }
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(
<div>
<input
type="text"
onChange={element => setItemName(element.target.value)}
placeholder="Nom de l'objet"
/>
<input
type="text"
onChange={element => setItemAmount(element.target.value)}
placeholder="Montant d'objet(s)"
/>
<button onClick={handleSubmit}>Creer</button>
</div>
)
}
//export default roomWidget //export default roomWidget