Display & Delete in love list

This commit is contained in:
2024-10-11 19:08:52 +02:00
parent b702bc629c
commit 1077400260
23 changed files with 644 additions and 523 deletions
+54
View File
@@ -0,0 +1,54 @@
export const useActions = ({
loveToDelete,
setLoveToDelete,
setDeleteMessage,
refreshDataset,
}) => {
const handleEdit = (id: string) => {
alert('Fonctionnalité en cours de développement');
};
const openPopup = (id: string) => {
setDeleteMessage(null);
setLoveToDelete(id);
};
const closePopup = () => {
setDeleteMessage(null);
setLoveToDelete(null);
};
const deleteLove = async () => {
const token = localStorage.getItem('token');
try {
const response = await fetch('/api/point', {
method: 'DELETE',
headers: {
Authorization: token,
'Content-Type': 'application/json',
},
body: JSON.stringify({
pointId: loveToDelete,
}),
});
if (response.ok) {
await refreshDataset();
setLoveToDelete(null);
return;
}
} catch (error) {
console.error(error);
}
setDeleteMessage("Une erreur s'est produite. Veuillez réessayer");
};
return {
handleEdit,
openPopup,
closePopup,
deleteLove,
};
};
+45
View File
@@ -0,0 +1,45 @@
// ---------------------------------------------------------------------------------------------------------------------
//! Imports
// ---------------------------------------------------------------------------------------------------------------------
// -------------------------------------------------- React & Next -----------------------------------------------------
import { useEffect, useState } from 'react';
// ---------------------------------------------------------------------------------------------------------------------
// -------------------------------------------------- Hooks & Utils ----------------------------------------------------
import { getDataset } from '@/app/request';
// ---------------------------------------------------------------------------------------------------------------------
export const useData = () => {
const [dataset, setDataset] = useState([]);
const [loveToDelete, setLoveToDelete] = useState<string | null>(null);
const [deleteMessage, setDeleteMessage] = useState<string | null>(null);
useEffect(() => {
refreshDataset();
}, []);
const refreshDataset = async () => {
const data = await getDataset();
const formattedDataset = data.map((d) => {
const formattedDate = new Date(d.createdat).toLocaleString('fr-FR');
return {
...d,
createdat: formattedDate,
};
});
setDataset(formattedDataset);
};
return {
dataset,
loveToDelete,
setLoveToDelete,
deleteMessage,
setDeleteMessage,
refreshDataset,
};
};