feat: 🎸 ott-2696-desktopSportsMenu

keep-around/b214ac7012ef42593bee62c207888a2593bc5a38
Zoia R 3 years ago
parent 31934c8774
commit c35dfbd283
  1. 2
      src/features/HomePage/components/HeaderFilters/styled.tsx
  2. 14
      src/features/SportsFilter/components/SelectSport/index.tsx
  3. 52
      src/features/SportsFilter/components/SelectSport/styled.tsx
  4. 4
      src/features/SportsFilter/components/SelectSportPopup/index.tsx
  5. 29
      src/features/SportsFilter/components/SelectSportPopup/styled.tsx
  6. 2
      src/features/UserFavorites/styled.tsx

@ -33,7 +33,7 @@ type Props = {
export const ScFilterItem = styled.div<Props>` export const ScFilterItem = styled.div<Props>`
text-transform: uppercase; text-transform: uppercase;
font-weight: 700; font-weight: 700;
font-size: 14px; font-size: 18px;
color: rgba(255, 255, 255, 0.5); color: rgba(255, 255, 255, 0.5);
margin: 0 10px; margin: 0 10px;
cursor: pointer; cursor: pointer;

@ -1,7 +1,11 @@
import { T9n } from 'features/T9n' import { T9n } from 'features/T9n'
import type { SportsType } from 'features/SportsFilter' import type { SportsType } from 'features/SportsFilter'
import { ScSportsFilter, ScArrow } from './styled' import {
Arrows,
ScSportsFilter,
ScFilterTitle,
} from './styled'
type SportsFilterProps = { type SportsFilterProps = {
onModalOpen: () => void, onModalOpen: () => void,
@ -16,10 +20,12 @@ export const SelectSport = ({
sport, sport,
sports, sports,
}: SportsFilterProps) => ( }: SportsFilterProps) => (
<ScSportsFilter onClick={onModalOpen} opacity={sport[0] === 'all_sports' ? 0.5 : 1}> <ScSportsFilter onClick={onModalOpen}>
<T9n t={sports[sport[0] as keyof typeof sports]} /> <ScFilterTitle opacity={sport[0] === 'all_sports' ? 0.5 : 1}>
<T9n t={sports[sport[0] as keyof typeof sports]} />
</ScFilterTitle>
&nbsp; &nbsp;
{sport.length > 1 ? `+ ${sport.length - 1}` : ''} {sport.length > 1 ? `+ ${sport.length - 1}` : ''}
<ScArrow refIcon='Arrow' color='#ffffff' direction={open ? 180 : 0} /> <Arrows active={open} />
</ScSportsFilter> </ScSportsFilter>
) )

@ -1,32 +1,66 @@
import styled, { css } from 'styled-components/macro' import styled, { css } from 'styled-components/macro'
import { isMobileDevice } from 'config/userAgent' import { isMobileDevice } from 'config/userAgent'
import { Icon } from 'features/Icon'
type PropsFilter = { type PropsFilterTitle = {
opacity: number, opacity: number,
} }
export const ScSportsFilter = styled.div<PropsFilter>`
type PropsArrows = {
active?: boolean,
}
export const ScSportsFilter = styled.div`
display: flex; display: flex;
color: #ffffff; color: #ffffff;
opacity: ${({ opacity }) => opacity}; font-size: 1rem;
font-size: 14px;
text-transform: uppercase; text-transform: uppercase;
font-weight: 700; font-weight: 700;
cursor: pointer; cursor: pointer;
align-items: center; align-items: center;
width: 20%; justify-content: space-between;
min-width: 15.4%;
padding-left: 5px;
${isMobileDevice ${isMobileDevice
? css` ? css`
width: 30%;
letter-spacing: 0.15rem; letter-spacing: 0.15rem;
font-size: 10px; font-size: 10px;
white-space: nowrap; white-space: nowrap;
padding-left: 0;
justify-content: center;
` `
: ''}; : ''};
` `
export const ScArrow = styled(Icon)` export const ScFilterTitle = styled.div<PropsFilterTitle>`
margin-left: 14px; opacity: ${({ opacity }) => opacity};
`
export const Arrows = styled.span<PropsArrows>`
width: 0.65rem;
height: 0.65rem;
border-left: 0.15rem solid #fff;
border-bottom: 0.15rem solid #fff;
margin-top: 0.4rem;
${isMobileDevice
? css`
width: 6px;
height: 6px;
margin-left: 14px;
margin-top: 3px;
`
: ''};
${({ active }) => (
active
? css`
transform: translate(-50%, -50%) rotate(135deg);
`
: css`
transform: translate(-50%, -50%) rotate(315deg);
opacity: 0.5
`
)}
` `

@ -1,6 +1,8 @@
import { T9n } from 'features/T9n' import { T9n } from 'features/T9n'
import type { SportsType } from 'features/SportsFilter' import type { SportsType } from 'features/SportsFilter'
import { isMobileDevice } from 'config/userAgent'
import { getSportLexic } from 'helpers/getSportLexic' import { getSportLexic } from 'helpers/getSportLexic'
import { import {
@ -37,7 +39,7 @@ export const SelectSportPopup = ({
<> <>
<ScModal <ScModal
isOpen={isOpen} isOpen={isOpen}
withCloseButton withCloseButton={isMobileDevice}
close={onModalClose} close={onModalClose}
closeSize={9} closeSize={9}
> >

@ -150,9 +150,9 @@ export const ScSportsWrapper = styled.div`
export const ScModal = styled(BaseModal)` export const ScModal = styled(BaseModal)`
${ModalWindow} { ${ModalWindow} {
position: absolute; position: absolute;
top: 200px; top: 12.2rem;
left: 75px; left: 4.7rem;
min-width: 200px; min-width: 14.9%;
max-height: 290px; max-height: 290px;
background-color: #333333; background-color: #333333;
border-radius: 0px; border-radius: 0px;
@ -174,12 +174,13 @@ export const ScModal = styled(BaseModal)`
position: relative; position: relative;
left: auto; left: auto;
top: auto; top: auto;
min-width: 280px;
max-height: 250px;
height: auto; height: auto;
min-width: 200px;
max-height: 250px;
${ModalCloseButton} { ${ModalCloseButton} {
padding: 0; padding: 0;
margin: 10px 10px 0 0;
} }
` `
: ''}; : ''};
@ -193,10 +194,11 @@ export const ScModal = styled(BaseModal)`
` `
export const ScHeaderTitle = styled.span` export const ScHeaderTitle = styled.span`
font-weight: 700; font-weight: 700;
font-size: 10px; font-size: 1rem;
line-height: 24px; line-height: 24px;
color: #FFFFFF; color: #FFFFFF;
padding-left: 30px; padding-left: 1.5rem;
${isMobileDevice ${isMobileDevice
? css` ? css`
padding: 0; padding: 0;
@ -213,8 +215,9 @@ export const ScHeaderTitle = styled.span`
export const ScHeaderGroup = styled.div` export const ScHeaderGroup = styled.div`
display: flex; display: flex;
flex-direction: row; flex-direction: row;
padding: 10px 0; padding: 0.8rem 0;
border-bottom: 1px solid #505050; border-bottom: 1px solid #505050;
margin-bottom: 10px;
${isMobileDevice ${isMobileDevice
? css` ? css`
@ -229,6 +232,7 @@ export const ScHeaderGroup = styled.div`
` `
: ''}; : ''};
` `
export const ScBody = styled.div` export const ScBody = styled.div`
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@ -244,12 +248,13 @@ export const ScBody = styled.div`
type SportProps = { type SportProps = {
active: boolean, active: boolean,
} }
export const ScSport = styled.div<SportProps>` export const ScSport = styled.div<SportProps>`
display: flex; display: flex;
text-transform: uppercase; text-transform: uppercase;
font-size: 10px;
font-weight: 700; font-weight: 700;
height: 30px; font-size: 1rem;
height: 2rem;
width: 100%; width: 100%;
opacity: ${({ active }) => (active ? 1 : 0.5)}; opacity: ${({ active }) => (active ? 1 : 0.5)};
/* margin-left: 30px; */ /* margin-left: 30px; */
@ -258,7 +263,9 @@ export const ScSport = styled.div<SportProps>`
${isMobileDevice ${isMobileDevice
? css` ? css`
font-size: 10px;
justify-content: center; justify-content: center;
height: 30px;
` `
: ''}; : ''};
@ -269,7 +276,7 @@ export const ScSport = styled.div<SportProps>`
` `
export const ScSportName = styled.span` export const ScSportName = styled.span`
padding-left: 30px; padding-left: 1.5rem;
${isMobileDevice ${isMobileDevice
? css` ? css`

@ -13,7 +13,7 @@ export const UserSportFavWrapper = styled.aside`
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
margin-top: 1.456rem; margin-top: 1rem;
padding-bottom: 2.75rem; padding-bottom: 2.75rem;
left: 0; left: 0;
top: 0; top: 0;

Loading…
Cancel
Save