1
0
mirror of https://github.com/checktheroads/hyperglass synced 2024-05-11 05:55:08 +00:00
checktheroads ebe848bbf9 UI improvements
2020-01-20 00:37:04 -07:00

68 lines
2.0 KiB
JavaScript

import React from "react";
import {
Button,
ColorModeProvider,
CSSReset,
Flex,
Heading,
Spinner,
ThemeProvider,
useTheme,
useColorMode
} from "@chakra-ui/core";
import { defaultTheme } from "~/theme";
const PreConfig = ({ loading, error, refresh }) => {
const theme = useTheme();
const { colorMode } = useColorMode();
const bg = { light: theme.colors.white, dark: theme.colors.dark };
const color = { light: theme.colors.dark, dark: theme.colors.white };
return (
<Flex
flexDirection="column"
minHeight="100vh"
w="100%"
bg={bg[colorMode]}
color={color[colorMode]}
>
<Flex
as="main"
w="100%"
flexGrow={1}
flexShrink={1}
flexBasis="auto"
alignItems="center"
justifyContent="start"
textAlign="center"
flexDirection="column"
px={2}
py={0}
mt={["50%", "50%", "50%", "25%"]}
>
{loading && <Spinner color="primary.500" w="6rem" h="6rem" />}
{!loading && error && (
<>
<Heading mb={4} color="danger.500" as="h1" fontSize="2xl">
{error.response?.data?.output || error.message || "An Error Occurred"}
</Heading>
<Button variant="outline" variantColor="danger" onClick={refresh}>
Retry
</Button>
</>
)}
</Flex>
</Flex>
);
};
export default ({ loading, error, refresh }) => {
return (
<ThemeProvider theme={defaultTheme}>
<ColorModeProvider>
<CSSReset />
<PreConfig loading={loading} error={error} refresh={refresh} />
</ColorModeProvider>
</ThemeProvider>
);
};