diff --git a/src/components/admin/ActivitiesEditor.tsx b/src/components/admin/ActivitiesEditor.tsx index 5ff32d9..598c128 100644 --- a/src/components/admin/ActivitiesEditor.tsx +++ b/src/components/admin/ActivitiesEditor.tsx @@ -9,7 +9,20 @@ import { Plus, Trash, Edit, Save } from "lucide-react"; import { Card } from "@/components/ui/card"; // Default activity data structure -const defaultActivities = [ + +interface Activity { + id: string + title: string + shortDescription: string + description: string + duration: string + frequency: string + participants: string + tags: string[] +} + +const defaultActivities: Activity[] = [ + { id: "1", title: "Robotics Workshop", @@ -24,8 +37,10 @@ const defaultActivities = [ const ActivitiesEditor = () => { const { toast } = useToast(); - const [activities, setActivities] = useState(defaultActivities); - const [newActivity, setNewActivity] = useState({ + + const [activities, setActivities] = useState(defaultActivities); + const [newActivity, setNewActivity] = useState({ + id: "", title: "", shortDescription: "", @@ -84,9 +99,11 @@ const ActivitiesEditor = () => { const handleUpdateActivity = () => { if (!editingId) return; - - setActivities(prev => - prev.map(activity => + + + setActivities(prev => + prev.map(activity => + activity.id === editingId ? newActivity : activity ) ); @@ -103,12 +120,15 @@ const ActivitiesEditor = () => { }); }; - const handleEditActivity = (activity) => { + + const handleEditActivity = (activity: Activity) => { + setNewActivity(activity); setEditingId(activity.id); }; - const handleRemoveActivity = (id) => { + const handleRemoveActivity = (id: string) => { + setActivities(prev => prev.filter(activity => activity.id !== id)); if (editingId === id) { setEditingId(null); @@ -135,7 +155,9 @@ const ActivitiesEditor = () => { } }; - const handleRemoveTag = (index) => { + + const handleRemoveTag = (index: number) => { + setNewActivity(prev => ({ ...prev, tags: prev.tags.filter((_, i) => i !== index) @@ -251,8 +273,10 @@ const ActivitiesEditor = () => { - - diff --git a/src/components/admin/TeamEditor.tsx b/src/components/admin/TeamEditor.tsx index f32db39..9ce4eea 100644 --- a/src/components/admin/TeamEditor.tsx +++ b/src/components/admin/TeamEditor.tsx @@ -9,7 +9,22 @@ import { Plus, Trash, Edit, Save, User } from "lucide-react"; import { Card } from "@/components/ui/card"; // Default team members data structure -const defaultTeamMembers = [ + + +interface Team { + id: string + firstName: string + lastName: string + role: string + bio: string + imageUrl: string + email: string + github: string + linkedin: string +} + +const defaultTeamMembers: Team[] = [ + { id: "1", firstName: "John", @@ -25,8 +40,10 @@ const defaultTeamMembers = [ const TeamEditor = () => { const { toast } = useToast(); - const [teamMembers, setTeamMembers] = useState(defaultTeamMembers); - const [newMember, setNewMember] = useState({ + + const [teamMembers, setTeamMembers] = useState(defaultTeamMembers); + const [newMember, setNewMember] = useState({ + id: "", firstName: "", lastName: "", @@ -86,9 +103,11 @@ const TeamEditor = () => { const handleUpdateMember = () => { if (!editingId) return; - - setTeamMembers(prev => - prev.map(member => + + + setTeamMembers(prev => + prev.map(member => + member.id === editingId ? newMember : member ) ); @@ -106,12 +125,16 @@ const TeamEditor = () => { }); }; - const handleEditMember = (member) => { + + const handleEditMember = (member: Team) => { + setNewMember(member); setEditingId(member.id); }; - const handleRemoveMember = (id) => { + + const handleRemoveMember = (id: string) => { + setTeamMembers(prev => prev.filter(member => member.id !== id)); if (editingId === id) { setEditingId(null); @@ -227,8 +250,9 @@ const TeamEditor = () => { - -