Maintenance.tsx 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. import styled from '@emotion/styled'
  2. import { FC } from 'react'
  3. import { SvgEmptyStateIllustration } from '@/assets/illustrations'
  4. import { SvgJoystreamLogoFull } from '@/assets/logos'
  5. import { Text } from '@/components/Text'
  6. import { atlasConfig } from '@/config'
  7. import { AppLogo } from './components/AppLogo'
  8. import { cVar, sizes } from './styles'
  9. export const Maintenance: FC = () => (
  10. <Container>
  11. <StyledSvgEmptyStateIllustration width={240} height={152} />
  12. <Header as="h1" variant="h500">
  13. We will be up & running soon
  14. </Header>
  15. <Text as="p" variant="t200" color="colorText">
  16. {atlasConfig.general.appName} is currently unavailable due to the network upgrade, new infrastructure release
  17. rollout or operational update which required a temporary downtime.
  18. <br />
  19. We should be back shortly. In the meantime,{' '}
  20. <StyledAnchor href={atlasConfig.general.joystreamDiscordUrl} target="_blank">
  21. <Text as="span" variant="t200" color="colorTextPrimary">
  22. feel free to connect with us on Discord.
  23. </Text>
  24. </StyledAnchor>
  25. </Text>
  26. <Divider />
  27. <StyledSvgAppLogoFull variant="full" width={undefined} height={40} />
  28. <StyledJoystreamAnchor href={atlasConfig.general.joystreamLandingPageUrl} target="_blank">
  29. <Text as="span" variant="t100" color="colorTextMuted" margin={{ right: 2 }}>
  30. Powered by
  31. </Text>
  32. <StyledSvgJoystreamLogoFull height={16} width={undefined} />
  33. </StyledJoystreamAnchor>
  34. </Container>
  35. )
  36. const Container = styled.div`
  37. position: relative;
  38. width: 360px;
  39. margin: 0 auto;
  40. text-align: center;
  41. top: 50%;
  42. transform: translateY(-50%);
  43. `
  44. const StyledSvgAppLogoFull = styled(AppLogo)`
  45. margin: 40px auto;
  46. `
  47. const StyledSvgEmptyStateIllustration = styled(SvgEmptyStateIllustration)`
  48. margin: 40px auto;
  49. `
  50. const StyledSvgJoystreamLogoFull = styled(SvgJoystreamLogoFull)`
  51. path {
  52. fill: ${cVar('colorTextMuted')};
  53. }
  54. `
  55. export const Divider = styled.div`
  56. height: 2px;
  57. width: 32px;
  58. background-color: ${cVar('colorCoreNeutral800')};
  59. margin: ${sizes(8)} auto;
  60. `
  61. export const StyledAnchor = styled.a`
  62. text-decoration: none;
  63. `
  64. export const StyledJoystreamAnchor = styled.a`
  65. text-decoration: none;
  66. justify-content: center;
  67. display: flex;
  68. `
  69. const Header = styled(Text)`
  70. margin-bottom: 8px;
  71. `