fixed item update

This commit is contained in:
2024-05-12 12:46:12 +02:00
parent 85cba8b1dc
commit 8b01b19365
13 changed files with 212 additions and 654 deletions

View File

@@ -1,4 +1,5 @@
const API_KEY = 'AIzaSyA_w7wmOAibpiDF5H3mXuL9AhcN-KVkFg4';
//const API_KEY = 'AIzaSyA_w7wmOAibpiDF5H3mXuL9AhcN-KVkFg4';
const API_KEY = 'AIzaSyCWPG-WbraYVEk6wVEZX8dJQAABTibvGNM';
const CSE_ID = '611cd62b5f315445c';
export async function searchAndResizeImage(query) {
@@ -11,11 +12,16 @@ export async function searchAndResizeImage(query) {
console.log('Image URL:', imageUrl);
return imageUrl;
}
else {
console.error('No image found.');
return "";
}
} catch (error) {
console.error('Error fetching image:', error);
return "";
}
console.error('No image found.');
return "";
}

View File

@@ -2,10 +2,11 @@ import axios from "axios";
export const getItem = async (_id) => {
export const getItem = async (id) => {
try {
const response = await axios.get("/item", {_id});
console.log(response.data)
console.log("GET ITEM ID : ", id)
const response = await axios.get("/item/"+id);
console.log("GET ITEM : ", response.data)
return response.data;
} catch (error) {
console.log("ERROR", error.response.data)

View File

@@ -79,6 +79,7 @@
.item-list {
width: 100%;
max-width:50vw;
}
.pagination {

View File

@@ -1,14 +1,26 @@
import React, { useState, useEffect } from "react";
import { Form, Input, InputNumber, Button, Select } from "antd";
import { Form, Input, InputNumber, Button, Select, DatePicker } from "antd";
import axios from "axios";
import { getRooms } from "../../api/room";
import { getItem } from "../../api/item";
import moment from 'moment';
const { TextArea } = Input;
const { Option } = Select;
function formatItem(_id, brand, model, room, price, purchaseDate, description, categories, createdAt, updatedAt, __v) {
function formatItem(itemObj) {//_id, brand, model, room, price, purchaseDate, description, categories, createdAt, updatedAt, __v, link) {
let _id = itemObj._id
let brand = itemObj.brand
let model = itemObj.model
let room = itemObj.room
let price = itemObj.price
let purchaseDate = new Date(itemObj.purchaseDate)
let description = itemObj.description
let categories = itemObj.categories
let createdAt = itemObj.createdAt
let updatedAt = itemObj.updatedAt
let __v = itemObj.__v
let link = itemObj.link
let item = {
_id,
brand,
@@ -20,7 +32,8 @@ function formatItem(_id, brand, model, room, price, purchaseDate, description, c
categories,
createdAt,
updatedAt,
__v
__v,
link
}
return item;
}
@@ -28,15 +41,29 @@ function formatItem(_id, brand, model, room, price, purchaseDate, description, c
export const FormUpdateItem = ({ itemId }) => {
const [form] = Form.useForm();
const [rooms, setRooms] = useState([]);
const [item, setItem] = useState(formatItem({ _id: itemId }))
const [item, setItem] = useState(null)
useEffect(() => {
const fetchData = async () => {
const roomsResponse = await getRooms();
setRooms(roomsResponse);
setRooms(getRooms())
const itemResponse = await getItem(itemId);
console.log(itemResponse)
setItem(formatItem(itemResponse));
};
setItem(getItem(item._id))
fetchData();
}, [itemId]);
}, []);
useEffect(() => {
if (item) {
form.setFieldsValue({
...item,
purchaseDate: item.purchaseDate ? moment(item.purchaseDate) : null,
});
}
}, [item, form]);
const onFinish = async (values) => {
try {
@@ -50,6 +77,7 @@ export const FormUpdateItem = ({ itemId }) => {
}
};
const dateFormat = 'YYYY-MM-DD';
return (
<Form
form={form}
@@ -65,7 +93,9 @@ export const FormUpdateItem = ({ itemId }) => {
</Form.Item>
<Form.Item label="Room" name="room">
<Select placeholder="Select a room">
{rooms.map((room) => (
{console.log(rooms)}
{
rooms.map((room) => (
<Option key={room._id} value={room._id}>
{room.name}
</Option>
@@ -76,7 +106,9 @@ export const FormUpdateItem = ({ itemId }) => {
<InputNumber />
</Form.Item>
<Form.Item label="Purchase Date" name="purchaseDate">
<Input />
<DatePicker
dateFormat={dateFormat}
/>
</Form.Item>
<Form.Item label="Description" name="description">
<Input.TextArea rows={4} />

View File

@@ -98,7 +98,7 @@ export const ItemBox = ({ model, brand, purchaseDate, price, _id }) => {
<div className="modal">
<div className="modal-content">
<span className="close" onClick={closeModal}>&times;</span>
<FormUpdateItem itemId={_id}></FormUpdateItem>
<FormUpdateItem itemId={_id}>{console.log("item ID :" + _id)}</FormUpdateItem>
</div>
</div>
)}

View File

@@ -26,8 +26,8 @@ export const Home = () => {
return (
<div style={{ display: 'block', margin: '5%, 50%, 0' }}>
{user && <h2>BONJOUR {user.user.username}</h2>}
<p>C'est un plaisir de te voir aujourd'hui.</p>
<p>Nous allons te g<EFBFBD>n<EFBFBD>rer un message inspirationnel rien que pour toi :)</p>
<p>C'est un plaisir de te voir aujourd'hui. Il n'y a pas grand chose <20> afficher sur cette page. Voici donc de quoi t'inspirer :</p>
<p style={{ textAlign: 'center' }}> Importation d'une image inspirante de <a href="https://inspirobot.me/">Inspirobot</a> :</p>
{inspirationUrl && <img src={inspirationUrl + '?' + new Date().getTime()} alt="inspirobot" style={{ display: 'block', margin: 'auto' }} width='auto' />}
<p>Credits : https://inspirobot.me/</p>
</div>

View File

@@ -18,8 +18,8 @@ export const RoomsStats = () => {
setPageTitle("Toutes les rooms :");
}, [setPageTitle]);
return (
<div>
<div className="gridContainer">
<div className="StatsContainer"></div>
</div>
);
};