✨ Display & Delete in love list
This commit is contained in:
@@ -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,
|
||||
};
|
||||
};
|
||||
@@ -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,
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user