aboutsummaryrefslogblamecommitdiffstats
path: root/webui/src/App.tsx
blob: 6f66a6ecd6930907e2670b30e82209acf40a9386 (plain) (tree)
1
2
3
4
5
6
7
8
9

                                                        
                                                




                                  
                          
                                             
                                        
 
                                                

                                         
 







                              
                                        


                            


                
             
                           
                   
                           

                         
    


                                  
    
    
 

                               
 
          
                                 
                     
                                               
                 
                                                    
                                                                          


                                                
                             

                  
                                        



                                                            
                    

    
import AppBar from '@material-ui/core/AppBar';
import CssBaseline from '@material-ui/core/CssBaseline';
import Toolbar from '@material-ui/core/Toolbar';
import {
  createMuiTheme,
  ThemeProvider,
  makeStyles,
} from '@material-ui/core/styles';
import React from 'react';
import { Route, Switch } from 'react-router';
import { Link } from 'react-router-dom';

import CurrentIdentity from './CurrentIdentity';
import BugQuery from './bug/BugQuery';
import ListQuery from './list/ListQuery';

const theme = createMuiTheme({
  palette: {
    primary: {
      main: '#263238',
    },
  },
});

const useStyles = makeStyles(theme => ({
  offset: {
    ...theme.mixins.toolbar,
  },
  filler: {
    flexGrow: 1,
  },
  appTitle: {
    ...theme.typography.h6,
    color: 'white',
    textDecoration: 'none',
    display: 'flex',
    alignItems: 'center',
  },
  logo: {
    height: '42px',
    marginRight: theme.spacing(2),
  },
}));

export default function App() {
  const classes = useStyles();

  return (
    <ThemeProvider theme={theme}>
      <CssBaseline />
      <AppBar position="fixed" color="primary">
        <Toolbar>
          <Link to="/" className={classes.appTitle}>
            <img src="/logo.svg" className={classes.logo} alt="git-bug" />
            git-bug
          </Link>
          <div className={classes.filler}></div>
          <CurrentIdentity />
        </Toolbar>
      </AppBar>
      <div className={classes.offset} />
      <Switch>
        <Route path="/" exact component={ListQuery} />
        <Route path="/bug/:id" exact component={BugQuery} />
      </Switch>
    </ThemeProvider>
  );
}