diff --git a/src/features/NoNetworkPopup/index.tsx b/src/features/NoNetworkPopup/index.tsx index 3ad1b6c6..aa0d3a7b 100644 --- a/src/features/NoNetworkPopup/index.tsx +++ b/src/features/NoNetworkPopup/index.tsx @@ -1,32 +1,36 @@ +import { useState } from 'react' + import { useNoNetworkPopupStore } from 'features/NoNetworkPopup' -import { Background } from 'features/Background' import { ArrowLoader, - Container, - Logo, SubTitle, Title, - Wrapper, + ScModalContainer, + ScBody, + ScButton, } from './styled' export * from './store' export const NoNetworkPopup = () => { + const [isClose, setIsClose] = useState(false) const { isOnline } = useNoNetworkPopupStore() if (isOnline) return null return ( - - - - - - - <SubTitle t='check_connection' /> - </Container> - </Background> - </Wrapper> + <ScModalContainer + isOpen={!isOnline && !isClose} + withCloseButton={false} + close={() => setIsClose(true)} + > + <ScBody> + <ArrowLoader /> + <Title t='lost_connection' /> + <SubTitle t='check_connection' /> + <ScButton onClick={() => setIsClose(true)}>Ok</ScButton> + </ScBody> + </ScModalContainer> ) } diff --git a/src/features/NoNetworkPopup/styled.tsx b/src/features/NoNetworkPopup/styled.tsx index 3524ef8a..f98297de 100644 --- a/src/features/NoNetworkPopup/styled.tsx +++ b/src/features/NoNetworkPopup/styled.tsx @@ -1,74 +1,93 @@ -import styled from 'styled-components/macro' +import styled, { css } from 'styled-components/macro' import { Arrows } from 'features/ArrowLoader/Icon' import { T9n } from 'features/T9n' +import { ButtonSolid } from 'features/Common' -export const Wrapper = styled.div` - position: absolute; - left: 0; - top: 0; - width: 100vw; - height: 100vh; - z-index: 1000; +import { Modal as BaseModal } from '../Modal' +import { ModalWindow } from '../Modal/styled' +import { isMobileDevice } from '../../config' + +export const ScModalContainer = styled(BaseModal)` + ${ModalWindow} { + width: 577px; + height: 367px; + border-radius: 5px; + background-color: #333333; + padding: 50px 0; + + ${isMobileDevice + ? css` + padding: 20px 0; + width: 332px; + height: 210px; + ` + : ''}; + } ` -export const Container = styled.div` +export const ScBody = styled.div` display: flex; flex-direction: column; align-items: center; - justify-content: center; - color: #FFFFFF; -` - -export const Logo = styled.div` - width: 234px; - height: 54px; - background-size: contain; - background-repeat: no-repeat; - background-image: url(/images/logo.svg); - margin-bottom: 87px; - - @media (max-width: 850px) { - width: 144px; - height: 33px; - margin-bottom: 54px; - } ` export const ArrowLoader = styled(Arrows)` - width: 94px; - height: 87px; + width: 101px; + height: 94px; @media (max-width: 850px) { - width: 58px; - height: 54px; + width: 48px; + height: 45px; } ` export const Title = styled(T9n)` - font-weight: bold; + font-weight: 700; font-size: 24px; line-height: 24px; - margin-top: 87px; + margin-top: 37px; @media (max-width: 850px) { - font-size: 14px; - line-height: 15px; - margin-top: 54px; + font-size: 19px; + line-height: 26px; + margin-top: 9px; } ` export const SubTitle = styled(T9n)` - font-weight: 500; - font-size: 16px; - line-height: 20px; - letter-spacing: 0.03em; - opacity: 0.8; - margin-top: 12px; + font-weight: 400; + font-size: 20px; + line-height: 28px; + margin-top: 11px; @media (max-width: 850px) { - font-size: 10px; - line-height: 12px; - margin-top: 7px; + font-size: 14px; + line-height: 28px; + margin-top: 9px; } ` + +export const ScButton = styled(ButtonSolid)` + color: white; + width: 134px; + height: 50px; + margin-top: 37px; + border-radius: 5px; + font-weight: 600; + font-size: 20px; + line-height: 50px; + + ${isMobileDevice + ? css` + margin-top: 9px; + border-radius: 2px; + width: 156px; + height: 44px; + font-weight: 600; + font-size: 15px; + line-height: 22px; + letter-spacing: -0.408px; + ` + : ''}; +`