import React, { useEffect } from 'react';
import { BrowserRouter as Router, Routes, Route, Navigate } from 'react-router-dom';
import { AuthProvider, useAuth } from './context/AuthContext';
import Dashboard from './pages/Dashboard';
import Login from './pages/Login';
import Register from './pages/Register';
import CreateRecipe from './pages/CreateRecipe';
import EditRecipe from './pages/EditRecipe';
import './App.css';
// Protected Route component
const ProtectedRoute: React.FC<{ children: React.ReactNode }> = ({ children }) => {
const { user, loading } = useAuth();
if (loading) {
return (
);
}
return user ? <>{children}> : ;
};
// Public Route component (redirect to dashboard if already logged in)
const PublicRoute: React.FC<{ children: React.ReactNode }> = ({ children }) => {
const { user, loading } = useAuth();
if (loading) {
return (
);
}
return user ? : <>{children}>;
};
function App() {
useEffect(() => {
// Update document title
document.title = 'Scoffer - Recipe Management';
// Create and set favicon
const favicon = document.querySelector("link[rel*='icon']") as HTMLLinkElement || document.createElement('link');
favicon.type = 'image/svg+xml';
favicon.rel = 'shortcut icon';
favicon.href = 'data:image/svg+xml;base64,' + btoa(`
`);
document.getElementsByTagName('head')[0].appendChild(favicon);
}, []);
return (
}
/>
}
/>
}
/>
}
/>
}
/>
} />
);
}
export default App;