Files
n3wt-school/Front-End/src/hooks/useEvents.js
Luc SORIGNET af0cd1c840 chore: Initial Commit
feat: Gestion des inscriptions [#1]
feat(frontend): Création des vues pour le paramétrage de l'école [#2]
feat: Gestion du login [#6]
fix: Correction lors de la migration des modèle [#8]
feat: Révision du menu principal [#9]
feat: Ajout d'un footer [#10]
feat: Création des dockers compose pour les environnements de
développement et de production [#12]
doc(ci): Mise en place de Husky et d'un suivi de version automatique [#14]
2024-11-18 16:06:21 +01:00

63 lines
1.5 KiB
JavaScript

import { useState } from 'react';
export function useSchedules() {
const [schedules, setSchedules] = useState([
{ id: 'default', name: 'Planning principal', color: '#10b981' },
{ id: 'secondary', name: 'Planning secondaire', color: '#3b82f6' },
{ id: 'special', name: 'Événements spéciaux', color: '#ef4444' },
{ id: 'exam', name: 'Planning examens', color: '#f59e0b' }
]);
const addSchedule = (newSchedule) => {
setSchedules(prev => [...prev, {
...newSchedule,
id: `schedule-${Date.now()}`
}]);
};
const updateSchedule = (id, updates) => {
setSchedules(prev => prev.map(schedule =>
schedule.id === id ? { ...schedule, ...updates } : schedule
));
};
const deleteSchedule = (id) => {
setSchedules(prev => prev.filter(schedule => schedule.id !== id));
};
return {
schedules,
addSchedule,
updateSchedule,
deleteSchedule
};
}
export function useEvents(initialEvents = []) {
const [events, setEvents] = useState(initialEvents);
const addEvent = (newEvent) => {
setEvents(prev => [...prev, {
...newEvent,
id: `event-${Date.now()}`
}]);
};
const updateEvent = (id, updates) => {
setEvents(prev => prev.map(event =>
event.id === id ? { ...event, ...updates } : event
));
};
const deleteEvent = (id) => {
setEvents(prev => prev.filter(event => event.id !== id));
};
return {
events,
setEvents,
addEvent,
updateEvent,
deleteEvent
};
}