diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx
index 9ca043e..fd8778d 100644
--- a/frontend/src/App.tsx
+++ b/frontend/src/App.tsx
@@ -1,25 +1,53 @@
-import React from 'react';
+import React, { useState } from 'react';
import { BrowserRouter as Router, Route, Routes } from 'react-router-dom';
import ResponsiveAppBar from './components/ResponsiveAppBar';
import ShipmentView from './pages/ShipmentView';
-import HomePage from './pages/HomeView'; // Assuming this is a default export
+import HomePage from './pages/HomeView';
import ResultsView from './pages/ResultsView';
import PlanningView from './pages/PlanningView';
-import ContactsManager from './pages/ContactsManagerView';
+import Modal from './components/Modal';
import AddressManager from './pages/AddressManagerView';
+import ContactsManager from './pages/ContactsManagerView';
const App: React.FC = () => {
+ const [openAddressManager, setOpenAddressManager] = useState(false);
+ const [openContactsManager, setOpenContactsManager] = useState(false);
+
+ const handleOpenAddressManager = () => {
+ setOpenAddressManager(true);
+ };
+
+ const handleCloseAddressManager = () => {
+ setOpenAddressManager(false);
+ };
+
+ const handleOpenContactsManager = () => {
+ setOpenContactsManager(true);
+ };
+
+ const handleCloseContactsManager = () => {
+ setOpenContactsManager(false);
+ };
+
return (
-
+
} />
} />
} />
} />
- } />
- } />
+ {/* Other routes as necessary */}
+
+
+
+
+
+
);
};
diff --git a/frontend/src/components/Modal.tsx b/frontend/src/components/Modal.tsx
new file mode 100644
index 0000000..4479334
--- /dev/null
+++ b/frontend/src/components/Modal.tsx
@@ -0,0 +1,27 @@
+import * as React from 'react';
+import { Dialog, DialogTitle, DialogContent, DialogActions, Button } from '@mui/material';
+
+interface ModalProps {
+ open: boolean;
+ onClose: () => void;
+ title: string;
+ children: React.ReactNode;
+}
+
+const Modal: React.FC = ({ open, onClose, title, children }) => {
+ return (
+
+ );
+};
+
+export default Modal;
\ No newline at end of file
diff --git a/frontend/src/components/ResponsiveAppBar.tsx b/frontend/src/components/ResponsiveAppBar.tsx
index 6f4787d..7c77b52 100644
--- a/frontend/src/components/ResponsiveAppBar.tsx
+++ b/frontend/src/components/ResponsiveAppBar.tsx
@@ -11,11 +11,15 @@ import Container from '@mui/material/Container';
import Avatar from '@mui/material/Avatar';
import Tooltip from '@mui/material/Tooltip';
import { Button } from '@mui/material';
-import { Link } from 'react-router-dom'; // Import Link for navigation
+import { Link } from 'react-router-dom';
import logo from '../assets/icons/psi_01_sn.svg';
import '../App.css';
-// Page definitions for navigation
+interface ResponsiveAppBarProps {
+ onOpenAddressManager: () => void;
+ onOpenContactsManager: () => void;
+}
+
const pages = [
{ name: 'Home', path: '/' },
{ name: 'Shipments', path: '/shipments' },
@@ -23,15 +27,14 @@ const pages = [
{ name: 'Results', path: '/results' }
];
-// User menu items
const userMenuItems = [
- { name: 'My Contacts', path: '/contacts_manager' },
- { name: 'My Addresses', path: '/addresses_manager' },
+ { name: 'My Contacts', action: 'contacts' },
+ { name: 'My Addresses', action: 'addresses' },
{ name: 'DUO', path: '/duo' },
{ name: 'Logout', path: '/logout' }
];
-const ResponsiveAppBar: React.FC = () => {
+const ResponsiveAppBar: React.FC = ({ onOpenAddressManager, onOpenContactsManager }) => {
const [anchorElNav, setAnchorElNav] = useState(null);
const [anchorElUser, setAnchorElUser] = useState(null);
@@ -51,12 +54,20 @@ const ResponsiveAppBar: React.FC = () => {
setAnchorElUser(null);
};
+ const handleMenuItemClick = (action: string) => {
+ if (action === 'contacts') {
+ onOpenContactsManager();
+ } else if (action === 'addresses') {
+ onOpenAddressManager();
+ }
+ handleCloseUserMenu();
+ };
+
return (
- {/* Logo and Title */}
@@ -77,7 +88,6 @@ const ResponsiveAppBar: React.FC = () => {
Heidi v2
- {/* Mobile Menu */}
{
- {/* Desktop Menu */}
{pages.map((page) => (
- {/* User Settings Menu */}
@@ -149,13 +157,19 @@ const ResponsiveAppBar: React.FC = () => {
open={Boolean(anchorElUser)}
onClose={handleCloseUserMenu}
>
- {userMenuItems.map((item) => (
-
+ ) : (
+
+
+ {item.name}
+
+
+ )
+ )}