Skip to content
Snippets Groups Projects
App.tsx 3.98 KiB
Newer Older
insert's avatar
insert committed
import { Docked, OverlappingPanels } from "react-overlapping-panels";
import { isTouchscreenDevice } from "../lib/isTouchscreenDevice";
insert's avatar
insert committed
import { Switch, Route } from "react-router-dom";
insert's avatar
insert committed
import styled from "styled-components";
insert's avatar
insert committed
import Popovers from "../context/intermediate/Popovers";
import ContextMenus from "../lib/ContextMenus";

insert's avatar
insert committed
import LeftSidebar from "../components/navigation/LeftSidebar";
import RightSidebar from "../components/navigation/RightSidebar";

insert's avatar
insert committed
import Home from './home/Home';
insert's avatar
insert committed
import Friends from "./friends/Friends";
insert's avatar
insert committed
import Developer from "./developer/Developer";
insert's avatar
insert committed

const Routes = styled.div`
    min-width: 0;
    display: flex;
    overflow: hidden;
    flex-direction: column;
    background: var(--primary-background);
`;
insert's avatar
insert committed

export default function App() {
    return (
        <OverlappingPanels
            width="100vw"
insert's avatar
insert committed
            height="100%"
            leftPanel={{ width: 292, component: <LeftSidebar /> }}
            rightPanel={{ width: 240, component: <RightSidebar /> }}
            docked={isTouchscreenDevice ? Docked.None : Docked.Left}>
insert's avatar
insert committed
            <Routes>
                <Switch>
insert's avatar
insert committed
                    <Route path="/dev">
                        <Developer />
                    </Route>

insert's avatar
insert committed
                    <Route path="/friends">
                        <Friends />
                    </Route>

                    <Route path="/">
                        <Home />
                    </Route>
                </Switch>
            </Routes>
insert's avatar
insert committed
            <ContextMenus />
insert's avatar
insert committed
            <Popovers />
insert's avatar
insert committed
        </OverlappingPanels>
    );
};
insert's avatar
insert committed

/**
 * 
 * <Route path="/channel/:channel/message/:message">
                            <ChannelWrapper />
                        </Route> 
                        <Route path="/server/:server/channel/:channel/settings/:page">
                            <ChannelSettings key="channel_settings" />
                        </Route>
                        <Route path="/server/:server/channel/:channel/settings">
                            <ChannelSettings key="channel_settings" />
                        </Route>
                        <Route path="/server/:server/settings/:page">
                            <ServerSettings key="channel_settings" />
                        </Route>
                        <Route path="/server/:server/settings">
                            <ServerSettings key="channel_settings" />
                        </Route>
                        <Route path="/channel/:channel/settings/:page">
                            <ChannelSettings key="channel_settings" />
                        </Route>
                        <Route path="/channel/:channel/settings">
                            <ChannelSettings key="channel_settings" />
                        </Route>

                        <Route path="/settings/:page">
                            <Settings key="settings" />
                        </Route>
                        <Route path="/settings">
                            <Settings key="settings" />
                        </Route>

                        <Route path="/server/:server/channel/:channel">
                            <ChannelWrapper />
                        </Route>
                        <Route path="/server/:server" />
                        <Route path="/channel/:channel">
                            <ChannelWrapper />
                        </Route>
                        
                        <Route path="/friends">
                            <Friends />
                        </Route>
                        <Route path="/dev">
                            <Developer />
                        </Route>
                        
                        <Route path="/open/:id">
                            <Open />
                        </Route>
                        {/*<Route path="/invite/:code">
                            <OpenInvite />
                        </Route>

                        <Route path="/">
                            <Home />
                        </Route>
 */