diff --git a/src/features/HomePage/components/ClearFiltersPopup/styled.tsx b/src/features/HomePage/components/ClearFiltersPopup/styled.tsx index 690d81cb..fa8971c6 100644 --- a/src/features/HomePage/components/ClearFiltersPopup/styled.tsx +++ b/src/features/HomePage/components/ClearFiltersPopup/styled.tsx @@ -23,91 +23,90 @@ export const Modal = styled(BaseModal)` ` export const PopupContainer = styled.div` -display: flex; -flex-direction: column; -align-items: center; -justify-content: center; -font-style: normal; -color: #FFFFFF; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + font-style: normal; + color: #FFFFFF; -${isMobileDevice - ? css`` - : css` - min-width: 611px;`} + ${isMobileDevice + ? '' + : css`min-width: 611px;`} ` export const PopupTitle = styled.div` -font-weight: 700; -font-size: 24px; -line-height: 24px; -margin-bottom: 45px; -${isMobileDevice - ? css` - font-size: 20px; - line-height: 24px; - margin-bottom: 25px;` - : css` + font-weight: 700; font-size: 24px; line-height: 24px; - margin-bottom: 45px;`} + margin-bottom: 45px; + + ${isMobileDevice + ? css` + font-size: 20px; + line-height: 24px; + margin-bottom: 25px;` + : css` + font-size: 24px; + line-height: 24px; + margin-bottom: 45px;`} ` export const PopupText = styled.div` -font-weight: 400; + font-weight: 400; -${isMobileDevice + ${isMobileDevice ? css` - font-size: 16px; - line-height: 22px; -margin-bottom: 33px;` + font-size: 16px; + line-height: 22px; + margin-bottom: 33px;` : css` - font-size: 20px; - line-height: 28px; - margin-bottom: 55px;`} + font-size: 20px; + line-height: 28px; + margin-bottom: 55px;`} ` export const ButtonsContainer = styled.div` -display: flex; -flex-direction: row; -align-items: center; -${isMobileDevice - ? css` - gap: 15px;` - : css` - gap: 20px; - `} + display: flex; + flex-direction: row; + align-items: center; + + ${isMobileDevice + ? css`gap: 15px;` + : css`gap: 20px;`} ` const Button = styled.button` -display: flex; -flex-direction: row; -justify-content: center; -align-items: center; -border-radius: 5px; -color: #FFFF; -font-weight: 600; + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + border-radius: 5px; + color: #FFFF; + font-weight: 600; -${isMobileDevice + ${isMobileDevice ? css` - font-size: 16px; -line-height: 16px; -width: 149px; -height: 38px;` + font-size: 16px; + line-height: 16px; + width: 149px; + height: 38px;` : css` - font-size: 20px; - line-height: 50px; - cursor: pointer; - width: 134px; - height: 50px;`} + font-size: 20px; + line-height: 50px; + cursor: pointer; + width: 134px; + height: 50px;`} ` export const ConfirmButton = styled(Button)` -background: #294FC4; -border: 1px solid #294FC4; -filter: drop-shadow(0px 1px 1px rgba(0, 0, 0, 0.3)); + background: #294FC4; + border: 1px solid #294FC4; + filter: drop-shadow(0px 1px 1px rgba(0, 0, 0, 0.3)); ` + export const CancelButton = styled(Button)` -border: 1px solid #FFFFFF; -background: none; -filter: drop-shadow(0px 1px 1px rgba(0, 0, 0, 0.3)); + border: 1px solid #FFFFFF; + background: none; + filter: drop-shadow(0px 1px 1px rgba(0, 0, 0, 0.3)); ` diff --git a/src/features/HomePage/components/Dropdown/index.tsx b/src/features/HomePage/components/Dropdown/index.tsx index f259aea9..51d04db3 100644 --- a/src/features/HomePage/components/Dropdown/index.tsx +++ b/src/features/HomePage/components/Dropdown/index.tsx @@ -78,14 +78,16 @@ export const DropDown = ({ labelLexic='all' /> - - - + {!isEmpty(currentActiveFilter) && ( + + + + )} {map(dropdownList, (filterItem) => { diff --git a/src/features/HomePage/components/Dropdown/styled.tsx b/src/features/HomePage/components/Dropdown/styled.tsx index 4cff2a99..95dcd375 100644 --- a/src/features/HomePage/components/Dropdown/styled.tsx +++ b/src/features/HomePage/components/Dropdown/styled.tsx @@ -7,56 +7,66 @@ import { isMobileDevice } from 'config/userAgent' import { NameStyled } from 'features/Name' export const DropDownContainer = styled.div` -${isMobileDevice - ? css` - border-top: 1px solid #505050;` + ${isMobileDevice + ? css` border-top: 1px solid #505050;` : css` - position: absolute; - top: 57px; - right: -24px; - background: #333333; - border-radius: 3.5px; - z-index: 10;`} + position: absolute; + top: 57px; + right: -24px; + background: #333333; + border-radius: 3.5px; + z-index: 10;`} ` export const FiltersList = styled.ul` -${customScrollbar} -overflow-y: auto; -display: flex; -flex-direction: column; -max-height: 500px; + overflow-y: auto; + display: flex; + flex-direction: column; + max-height: 500px; + + ${isMobileDevice + ? css` + @media (orientation: landscape){ + max-height: 300px; + } + ` + : ''} + + ${customScrollbar} ` -export const FilterItem = styled.li` -${isMobileDevice +export const FilterItem = styled.li` + ${isMobileDevice ? css` - max-width: 280px; - white-space: nowrap; - padding: 10px 0 10px 13px; - ` + max-width: 280px; + white-space: nowrap; + padding: 10px 0 10px 13px; + ` : css` - min-width: 286px; - white-space: nowrap; - padding: 15px 26px;`} -:hover { - background: rgba(255, 255, 255, 0.2); -} + min-width: 286px; + white-space: nowrap; + padding: 15px 26px;`} + + :hover { + background: rgba(255, 255, 255, 0.2); + } ` + export const Checkbox = styled(BaseCheckbox)` display: block; text-transform: uppercase; ${Label} { - text-transform: uppercase; + text-transform: uppercase; font-weight: 700; + ${isMobileDevice ? css` font-size: 10px; - line-height: 11px; - ` + line-height: 11px;` : css` font-size: 18px; - line-height: 16px; - `} + line-height: 16px;`} + ${NameStyled} { overflow: hidden; text-overflow: ellipsis; @@ -64,152 +74,159 @@ export const Checkbox = styled(BaseCheckbox)` } ${({ checked }) => (checked - ? css`` - : css` - color: rgba(255, 255, 255, 0.6);` - )} + ? '' + : css`color: rgba(255, 255, 255, 0.6);`)} } ${CheckboxSvg} { margin-right: 8px; - flex: 0 0 auto; + ${isMobileDevice ? css` width: 14px; height: 14px; - ` - : css` + ` + : css` width: 20px; - height: 20px; - `} + height: 20px;`} } ` + type TCommonButtonsBlock = { isArena?: boolean, } export const CommonButtonsBlock = styled.div` -display: flex; -justify-content: space-between; -${({ isArena }) => (isArena + display: flex; + justify-content: space-between; + + ${({ isArena }) => (isArena ? css` - align-items: flex-start; - padding: ${isMobileDevice ? '8px 25px 10px 13px' : '24px 26px 15px 26px'}; - ` + align-items: flex-start; + padding: ${isMobileDevice ? '8px 25px 10px 13px' : '24px 26px 15px 26px'}; + ` : css` - align-items: center; - padding:${isMobileDevice ? '8px 25px 10px 13px' : '15px 26px'}; - ` - )} -` + align-items: center; + padding:${isMobileDevice ? '8px 25px 10px 13px' : '15px 26px'};`)} + ` + export const ClearButtonContainer = styled.div` -${isMobileDevice + ${isMobileDevice ? css` - position: absolute; - top: 14px; - right: 36px;` + position: absolute; + top: 14px; + right: 36px;` : ''} -.clear_button { - font-style: normal; - ${isMobileDevice + .clear_button { + ${isMobileDevice ? css` font-size: 10px; line-height: 12px;` : css` font-size: 18px; line-height: 22px;`} - font-weight: 400; - - letter-spacing: 0.05em; - text-transform: uppercase; - color: rgba(255, 255, 255, 0.5); - cursor: pointer; -} + + font-style: normal; + font-weight: 400; + letter-spacing: 0.05em; + text-transform: uppercase; + color: rgba(255, 255, 255, 0.5); + cursor: pointer; + } ` + export const SearchContainer = styled.div` -padding-right: ${isMobileDevice ? '0px' : '20px'}; -position: relative; + padding-right: ${isMobileDevice ? '0px' : '20px'}; + position: relative; -:before { - content: ''; - background: url(/images/search.svg) no-repeat; - position: absolute; - ${isMobileDevice + :before { + content: ''; + background: url(/images/search.svg) no-repeat; + position: absolute; + + ${isMobileDevice ? css` - left: 8px; - top: 7px;` + left: 8px; + top: 7px; + width: 11px; + height: 11px; + ` : css` - left: 13px; - top: 13px;`} - z-index: 2; - width: 13px; - height: 11px; -} + left: 13px; + top: 10px; + width: 16px; + height: 16px;`} + + z-index: 2; + } ` export const SearchInput = styled.input` -border: none; -background: transparent; -outline: none; -width: 100%; -background: #292929; -border-radius: 10px; -margin-bottom: 15px; - -color: #FFFF; -${isMobileDevice + border: none; + background: transparent; + outline: none; + width: 100%; + background: #292929; + border-radius: 10px; + margin-bottom: 15px; + color: #FFFF; + + ${isMobileDevice ? css` - height: 24px; - min-width: 242px; - padding-left: 23px;` + height: 24px; + min-width: 242px; + padding-left: 23px;` : css` - min-width: 513px; - padding-left: 36px; - height: 36px;`} + min-width: 513px; + padding-left: 36px; + height: 36px;`} -::placeholder { -${isMobileDevice + ${isMobileDevice ? css` - font-size: 10px; - line-height: 15px;` - : css` - font-size: 18px; - line-height: 22px;`} + font-size: 10px; + line-height: 15px;` + : css` + font-size: 18px; + line-height: 22px;`} - text-transform: uppercase; - letter-spacing: 0.05em; -} + ::placeholder { + text-transform: uppercase; + letter-spacing: 0.05em; + } ` + export const SearchWithAllContainer = styled.div` -flex: 1 1 auto; + flex: 1 1 auto; ` + export const BackButton = styled.div` -font-style: normal; -font-weight: 700; -font-size: 10px; -line-height: 12px; -align-items: center; -letter-spacing: 0.05em; -text-transform: uppercase; -color: #FFFFFF; -cursor: pointer; -position: absolute; -top: 12px; -left: 13px; -padding-left: 24px; -:before { - content: ''; - display: block; - background: url(/images/arrowUpWhite.svg) center no-repeat; - background-size: 12px 12xp; - transform: rotate(-90deg); - right: 0; - width: 12px; - height: 12px; + font-style: normal; + font-weight: 700; + font-size: 10px; + line-height: 12px; + align-items: center; + letter-spacing: 0.05em; + text-transform: uppercase; + color: #FFFFFF; + cursor: pointer; position: absolute; - top: 0; - left: 0; -} + top: 12px; + left: 13px; + padding-left: 24px; + + :before { + content: ''; + display: block; + background: url(/images/arrowUpWhite.svg) center no-repeat; + background-size: 12px 12xp; + transform: rotate(-90deg); + right: 0; + width: 12px; + height: 12px; + position: absolute; + top: 0; + left: 0; + } ` diff --git a/src/features/HomePage/components/Header/index.tsx b/src/features/HomePage/components/Header/index.tsx index 21b639ab..de8c84c2 100644 --- a/src/features/HomePage/components/Header/index.tsx +++ b/src/features/HomePage/components/Header/index.tsx @@ -15,14 +15,18 @@ import { Position, } from 'features/ProfileHeader/styled' -export const Header = () => { +type THeader = { + disabled: boolean, +} + +export const Header = ({ disabled }: THeader) => { const { resetFilters, updateDate, } = useHeaderFiltersStore() return ( - + { <> - {filtersSize !== 0 && ` ${filtersSize}`} + {filtersSize !== 0 && {` ${filtersSize}`}} {isEmpty(isOpenList) diff --git a/src/features/HomePage/components/MobileMatchesFilters/styled.tsx b/src/features/HomePage/components/MobileMatchesFilters/styled.tsx index 5f64308a..77b0961f 100644 --- a/src/features/HomePage/components/MobileMatchesFilters/styled.tsx +++ b/src/features/HomePage/components/MobileMatchesFilters/styled.tsx @@ -1,27 +1,32 @@ import styled, { css } from 'styled-components/macro' +import { OutsideClickWrapper } from 'features/OutsideClick' import { ModalWindow } from 'features/Modal/styled' import { Modal as BaseModal, } from 'features/AuthServiceApp/components/RegisterPopup/styled' export const Modal = styled(BaseModal)` + ${OutsideClickWrapper} { + height: 100%; + } + ${ModalWindow} { min-height: auto; - max-height: 452px; max-width: 293px; padding: 35px 0 9px 0; + top: 4vh; } ` export const CloseButton = styled.div` -position: absolute; -width: 13px; -height: 13px; -background:url(/images/closeWhite.svg) no-repeat; -background-size: 13px; -top: 13px; -right: 13px; + position: absolute; + width: 13px; + height: 13px; + background:url(/images/closeWhite.svg) no-repeat; + background-size: 13px; + top: 13px; + right: 13px; ` type TFilterProps = { @@ -29,42 +34,47 @@ type TFilterProps = { } export const FilterContainer = styled.div` -font-style: normal; -font-weight: 700; -font-size: 10px; -line-height: 12px; -letter-spacing: 0.05em; -text-transform: uppercase; -color: #FFFFFF; -padding-left: 22px; -position: relative; + font-style: normal; + font-weight: 700; + font-size: 10px; + line-height: 14px; + letter-spacing: 0.05em; + text-transform: uppercase; + color: #FFFFFF; + padding-left: 22px; + position: relative; -:before{ - content: ''; - display: block; - position: absolute; - left: 0; - top: 0; - width:14px; - height: 14px; - ${({ active }) => (active + :before{ + content: ''; + display: block; + position: absolute; + left: 0; + top: 0; + width:14px; + height: 14px; + background-size: 14px 14px; + + ${({ active }) => (active ? css` - background: url(/images/filter-white.svg) no-repeat;` + background: url(/images/filter-white.svg) no-repeat;` : css` - background: url(/images/filter-gray.svg) no-repeat;`)} - background-size: 14px 14px; -} + background: url(/images/filter-gray.svg) no-repeat;`)} + } ` export const ClearButton = styled.div` -font-style: normal; -position: absolute; -top: 14px; -right: 36px; -font-size: 10px; -line-height: 12px; -font-weight: 400; -letter-spacing: 0.05em; -text-transform: uppercase; -color: rgba(255,255,255,0.5); + font-style: normal; + position: absolute; + top: 14px; + right: 36px; + font-size: 10px; + line-height: 12px; + font-weight: 400; + letter-spacing: 0.05em; + text-transform: uppercase; + color: rgba(255,255,255,0.5); +` + +export const FiltersCount = styled.span` + font-weight: 400; ` diff --git a/src/features/HomePage/index.tsx b/src/features/HomePage/index.tsx index 6f9fd6ca..ef514ee0 100644 --- a/src/features/HomePage/index.tsx +++ b/src/features/HomePage/index.tsx @@ -7,6 +7,7 @@ import { ConfirmPopup } from 'features/AuthServiceApp/components/ConfirmPopup' import { Matches } from 'features/Matches' import { HeaderFiltersStore, + useHeaderFiltersStore, } from 'features/HeaderFilters' import { @@ -30,6 +31,7 @@ const Home = () => { isShowConfirmPopup, setIsOpenDownload, } = useHomePage() + const { isOpenList } = useHeaderFiltersStore() return ( @@ -39,7 +41,7 @@ const Home = () => { setIsOpenDownload={setIsOpenDownload} /> ) : ( -
+
)}
diff --git a/src/features/OutsideClick/index.tsx b/src/features/OutsideClick/index.tsx index ddfa62aa..ff97d3a1 100644 --- a/src/features/OutsideClick/index.tsx +++ b/src/features/OutsideClick/index.tsx @@ -11,7 +11,7 @@ type Props = { onClick: (event?: MouseEvent) => void, } -const OutsideClickWrapper = styled.div`` +export const OutsideClickWrapper = styled.div`` export const OutsideClick = ({ children, diff --git a/src/features/ProfileHeader/styled.tsx b/src/features/ProfileHeader/styled.tsx index 2c1f2b2f..084bbf3e 100644 --- a/src/features/ProfileHeader/styled.tsx +++ b/src/features/ProfileHeader/styled.tsx @@ -44,6 +44,7 @@ export const defaultHeaderStyles = ( type HeaderProps = { color?: string, + disabled?: boolean, headerImage?: string | null, height?: number, isMatchPage?: boolean, @@ -63,6 +64,12 @@ export const HeaderStyled = styled.header` ` : '' )} + ${({ disabled }) => ( + disabled ? css` + pointer-events: none; + ` : '' + )} + ${({ isMatchPage }) => css` ${isMobileDevice ? css` @@ -71,7 +78,6 @@ export const HeaderStyled = styled.header` ` : ''} `} - ` type Props = { @@ -105,7 +111,7 @@ export const HeaderLogo = styled(Logo)` transform: translateX(-50%); position: absolute; - ${client.styles.matchPageMobileHeaderLogo} + ${client.styles.matchPageMobileHeaderLogo} ` : ''} ` : css` ${isMobileDevice ? css` @@ -119,8 +125,6 @@ export const HeaderLogo = styled(Logo)` } ` : ''} `)} - - ` type PositionProps = {