diff --git a/app/frontend/components/Area/AreaModal.tsx b/app/frontend/components/Area/AreaModal.tsx index 26de16c..e5e825c 100644 --- a/app/frontend/components/Area/AreaModal.tsx +++ b/app/frontend/components/Area/AreaModal.tsx @@ -5,6 +5,7 @@ import { useDataContext } from '../../contexts/DataContext'; interface AreaModalProps { isOpen: boolean; onClose: () => void; + onSave: (areaData: Area) => void; area?: Area | null; } diff --git a/app/frontend/components/Areas.tsx b/app/frontend/components/Areas.tsx index 8070aad..641dd20 100644 --- a/app/frontend/components/Areas.tsx +++ b/app/frontend/components/Areas.tsx @@ -57,7 +57,7 @@ const Areas: React.FC = () => { if (!areaToDelete) return; try { - await deleteArea(areaToDelete.id); + await deleteArea(areaToDelete.id!); setIsConfirmDialogOpen(false); setAreaToDelete(null); } catch (error) { diff --git a/app/frontend/components/Navbar.tsx b/app/frontend/components/Navbar.tsx index df4afbd..56eca0c 100644 --- a/app/frontend/components/Navbar.tsx +++ b/app/frontend/components/Navbar.tsx @@ -1,7 +1,8 @@ // src/components/Navbar.tsx -import React, { useState, useRef, useEffect } from 'react'; -import { Link } from 'react-router-dom'; +import React, { useState, useRef, useEffect } from "react"; +import { Link } from "react-router-dom"; +import { UserIcon } from "@heroicons/react/24/solid"; interface NavbarProps { isDarkMode: boolean; @@ -30,9 +31,9 @@ const Navbar: React.FC = ({ setIsDropdownOpen(false); } }; - document.addEventListener('mousedown', handleClickOutside); + document.addEventListener("mousedown", handleClickOutside); return () => { - document.removeEventListener('mousedown', handleClickOutside); + document.removeEventListener("mousedown", handleClickOutside); }; }, []); @@ -63,14 +64,17 @@ const Navbar: React.FC = ({ className="flex items-center focus:outline-none" aria-label="User Menu" > - User Avatar + {currentUser?.avatarUrl ? ( + User Avatar + ) : ( +
+ +
+ )} {/* Dropdown Menu */} @@ -84,8 +88,7 @@ const Navbar: React.FC = ({ + {activeDropdown === project.id && (
- {getCompletionPercentage(project.id)}% + {getCompletionPercentage(project?.id)}% diff --git a/app/frontend/components/Shared/PriorityDropdown.tsx b/app/frontend/components/Shared/PriorityDropdown.tsx index 287bba3..0f73f1a 100644 --- a/app/frontend/components/Shared/PriorityDropdown.tsx +++ b/app/frontend/components/Shared/PriorityDropdown.tsx @@ -1,9 +1,10 @@ import React, { useState, useRef, useEffect } from 'react'; import { ChevronDownIcon, ArrowDownIcon, ArrowUpIcon, FireIcon } from '@heroicons/react/24/outline'; // Import the icons +import { PriorityType } from '../../entities/Task'; interface PriorityDropdownProps { - value: string; - onChange: (value: string) => void; + value: PriorityType; + onChange: (value: PriorityType) => void; } const priorities = [ @@ -26,7 +27,7 @@ const PriorityDropdown: React.FC = ({ value, onChange }) } }; - const handleSelect = (priority: string) => { + const handleSelect = (priority: PriorityType) => { onChange(priority); setIsOpen(false); }; @@ -64,7 +65,7 @@ const PriorityDropdown: React.FC = ({ value, onChange }) {priorities.map((priority) => (