github.com/pelicanplatform/pelican@v1.0.5/web_ui/frontend/app/(landing)/page.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  "use client"
    20  
    21  import RateGraph from "@/components/graphs/RateGraph";
    22  import StatusBox from "@/components/StatusBox";
    23  
    24  import {TimeDuration} from "@/components/graphs/prometheus";
    25  
    26  import {Box, Container, Grid, Typography} from "@mui/material";
    27  import FederationOverview from "@/components/FederationOverview";
    28  import Link from "next/link";
    29  
    30  function TextCenteredBox({text} : {text: string}) {
    31      return (
    32          <Box sx={{
    33              aspectRatio: 1,
    34              width: "100%",
    35              display: "flex",
    36              textTransform: "capitalize",
    37              bgcolor: "primary.light",
    38              borderRadius: "1rem",
    39  
    40          }}>
    41              <Box m={"auto"}>
    42                  <Typography variant={"h4"} align={"center"}>{text}</Typography>
    43              </Box>
    44          </Box>
    45      )
    46  }
    47  
    48  
    49  export default function Home() {
    50  
    51      const pelicanServices = ["origin", "director", "registry"]
    52  
    53      return (
    54          <Box width={"100%"} pt={5}>
    55              <Container maxWidth={"xl"}>
    56                  <Typography pb={5} textAlign={"center"} variant={"h3"}>Pelican Services</Typography>
    57                  <Grid container justifyContent={"center"} spacing={2}>
    58                      {pelicanServices.map((service) => {
    59                          return (
    60                              <Grid key={service} item xs={2}>
    61                                  <Link href={`./${service}/index.html`}>
    62                                      <TextCenteredBox text={service}/>
    63                                  </Link>
    64                              </Grid>
    65                          )
    66                      })}
    67                  </Grid>
    68              </Container>
    69          </Box>
    70      )
    71  }