import React from 'react';
import { ThemeProvider, createTheme, CssBaseline, AppBar, Toolbar, Typography, Container, Box, Button, Chip } from '@mui/material';
import Dashboard from './Dashboard';
import RuleManager from './RuleManager';
import LoginDialog from './LoginDialog';
import { AuthProvider, useAuth } from './AuthContext';
// Gruvbox Dark color palette
const gruvboxDark = {
bg0: '#282828', // background
bg1: '#3c3836', // lighter background (cards)
bg2: '#504945', // selection / borders
fg: '#ebdbb2', // foreground
fg2: '#d5c4a1', // secondary text
aqua: '#8ec07c', // primary accent
orange: '#fe8019', // secondary accent
red: '#fb4934',
green: '#b8bb26',
yellow: '#fabd2f',
blue: '#83a598',
purple: '#d3869b',
};
const darkTheme = createTheme({
palette: {
mode: 'dark',
primary: {
main: gruvboxDark.aqua,
},
secondary: {
main: gruvboxDark.orange,
},
background: {
default: gruvboxDark.bg0,
paper: gruvboxDark.bg1,
},
text: {
primary: gruvboxDark.fg,
secondary: gruvboxDark.fg2,
},
divider: gruvboxDark.bg2,
},
});
function AppContent() {
const { user, loading, logout, isAuthenticated, isAdmin } = useAuth();
if (loading) {
return (
Loading...
);
}
if (!isAuthenticated) {
return ;
}
return (
Tischlerei Dashboard
{isAdmin && (
)}
{isAdmin && }
);
}
function App() {
return (
);
}
export default App;