github.com/pelicanplatform/pelican@v1.0.5/web_ui/frontend/app/config/layout.tsx (about)

     1  /***************************************************************
     2   *
     3   * Copyright (C) 2023, Pelican Project, Morgridge Institute for Research
     4   *
     5   * Licensed under the Apache License, Version 2.0 (the "License"); you
     6   * may not use this file except in compliance with the License.  You may
     7   * obtain a copy of the License at
     8   *
     9   *    http://www.apache.org/licenses/LICENSE-2.0
    10   *
    11   * Unless required by applicable law or agreed to in writing, software
    12   * distributed under the License is distributed on an "AS IS" BASIS,
    13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14   * See the License for the specific language governing permissions and
    15   * limitations under the License.
    16   *
    17   ***************************************************************/
    18  
    19  import {Box, Tooltip} from "@mui/material";
    20  
    21  import {Sidebar} from "@/components/layout/Sidebar";
    22  import Link from "next/link";
    23  import Image from "next/image";
    24  import PelicanLogo from "@/public/static/images/PelicanPlatformLogo_Icon.png";
    25  import IconButton from "@mui/material/IconButton";
    26  import {TripOrigin, AssistantDirection, AppRegistration} from "@mui/icons-material";
    27  
    28  export const metadata = {
    29      title: 'Pelican Configuration',
    30      description: 'Software designed to make data distribution easy',
    31  }
    32  
    33  export default function RootLayout({
    34                                         children,
    35                                     }: {
    36      children: React.ReactNode
    37  }) {
    38      return (
    39          <Box display={"flex"} flexDirection={"row"}>
    40              <Sidebar>
    41                  <Link href={"/index.html"}>
    42                      <Image
    43                          src={PelicanLogo}
    44                          alt={"Pelican Logo"}
    45                          width={36}
    46                          height={36}
    47                      />
    48                  </Link>
    49                  <Box pt={3}>
    50                      <Link href={"/origin/index.html"}>
    51                          <Tooltip title={"Origin"} placement={"right"}>
    52                              <IconButton>
    53                                  <TripOrigin/>
    54                              </IconButton>
    55                          </Tooltip>
    56                      </Link>
    57                  </Box>
    58                  <Box pt={1}>
    59                      <Link href={"/director/index.html"}>
    60                          <Tooltip title={"Director"} placement={"right"}>
    61                              <IconButton>
    62                                  <AssistantDirection/>
    63                              </IconButton>
    64                          </Tooltip>
    65                      </Link>
    66                  </Box>
    67                  <Box pt={1}>
    68                      <Link href={"/registry/index.html"}>
    69                          <Tooltip title={"Registry"} placement={"right"}>
    70                              <IconButton>
    71                                  <AppRegistration/>
    72                              </IconButton>
    73                          </Tooltip>
    74                      </Link>
    75                  </Box>
    76              </Sidebar>
    77              <Box component={"main"} pl={"72px"} pb={2} display={"flex"} minHeight={"100vh"} flexGrow={1}>
    78                  {children}
    79              </Box>
    80          </Box>
    81      )
    82  }