Skip to content
Snippets Groups Projects
App.tsx 1.91 KiB
Newer Older
  • Learn to ignore specific revisions
  • import React from "react";
    import "./App.scss";
    
    import TopBar from "./organisms/TopBar";
    import BottomBar from "./organisms/BottomBar";
    
    danieldeng2's avatar
    danieldeng2 committed
    import {
      faBookOpen,
    
    danieldeng2's avatar
    danieldeng2 committed
      faCalendarWeek,
      faChalkboardTeacher,
    } from "@fortawesome/free-solid-svg-icons";
    
    import StandardView from "./pages/StandardView";
    
    danieldeng2's avatar
    danieldeng2 committed
    type AppState = {
    
      toggledLeft: boolean;
    
    danieldeng2's avatar
    danieldeng2 committed
      toggledRight: boolean;
    
    danieldeng2's avatar
    danieldeng2 committed
    class App extends React.Component<{}, AppState> {
    
      constructor(props: {}) {
    
        super(props);
    
    danieldeng2's avatar
    danieldeng2 committed
        this.state = { toggledLeft: false, toggledRight: false };
    
    	}
    	
    	componentDidMount(){
    		let interfaceSize = localStorage.getItem("interfaceSize");
    		if (interfaceSize){
    			document.documentElement.style.fontSize = `${interfaceSize}%`;
    		}
    	}
    
    danieldeng2's avatar
    danieldeng2 committed
      toggleLeftBar() {
    
        this.setState((state) => ({
    
          toggledLeft: !state.toggledLeft,
    
    danieldeng2's avatar
    danieldeng2 committed
      toggleRightBar() {
        this.setState((state) => ({
          toggledRight: !state.toggledRight,
        }));
      }
    
    
      render() {
        const horizontalBarPages = [
    
          { name: "Home", path: "/home", icon: faHome },
    
    danieldeng2's avatar
    danieldeng2 committed
          { name: "Modules", path: "/modules", icon: faChalkboardTeacher },
    
    danieldeng2's avatar
    danieldeng2 committed
          { name: "Timeline", path: "/timeline", icon: faCalendarWeek },
    
          { name: "Exams", path: "/exams", icon: faBookOpen },
        ];
    
        return (
          <>
    
            <TopBar
              pages={horizontalBarPages}
    
    danieldeng2's avatar
    danieldeng2 committed
              onFavIconClick={(e) => {
                e.preventDefault();
                this.toggleLeftBar();
              }}
              onUserIconClick={(e) => {
                e.preventDefault();
                this.toggleRightBar();
              }}
    
            />
    
            <StandardView
              pages={horizontalBarPages}
    
    					toggledLeft={this.state.toggledLeft}
    
    danieldeng2's avatar
    danieldeng2 committed
              toggledRight={this.state.toggledRight}
              onOverlayClick={(e) => {
                e.preventDefault();
                this.setState({ toggledLeft: false, toggledRight: false });
              }}
    
    
            <BottomBar pages={horizontalBarPages} />
          </>
        );
      }
    }
    
    
    export default App;