You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
255 lines
4.8 KiB
255 lines
4.8 KiB
import styled, { css } from 'styled-components/macro'
|
|
|
|
import {
|
|
isIOS,
|
|
isMobileDevice,
|
|
devices,
|
|
} from 'config'
|
|
|
|
import { customScrollbar } from 'features/Common'
|
|
import { T9n } from 'features/T9n'
|
|
|
|
type WrapperProps = {
|
|
highlighted?: boolean,
|
|
isHidden?: boolean,
|
|
isTourOpen?: boolean,
|
|
}
|
|
|
|
export const Wrapper = styled.div<WrapperProps>`
|
|
padding-right: 14px;
|
|
padding-top: 10px;
|
|
|
|
${({ highlighted }) => (highlighted
|
|
? css`
|
|
border: 1px solid #0057FF;
|
|
border-radius: 5px;
|
|
box-shadow: 0px 0px 66px 16px rgba(0, 87, 255, 0.8);
|
|
`
|
|
: '')}
|
|
|
|
${isMobileDevice
|
|
? css`
|
|
overflow-y: auto;
|
|
width: 100%;
|
|
padding: 10px 10px 0;
|
|
|
|
::-webkit-scrollbar {
|
|
display: none;
|
|
}
|
|
`
|
|
: ''};
|
|
|
|
${({ isHidden }) => (isHidden && isMobileDevice
|
|
? css`
|
|
padding-top: 50px;`
|
|
: '')}
|
|
|
|
${({ isTourOpen }) => (isTourOpen
|
|
? css`
|
|
overflow-y: initial;
|
|
z-index: 9999;
|
|
`
|
|
: '')}
|
|
`
|
|
|
|
export const TabsWrapper = styled.div``
|
|
|
|
export const TabsGroup = styled.div.attrs({ role: 'tablist' })`
|
|
display: flex;
|
|
justify-content: center;
|
|
gap: ${isMobileDevice ? 30 : 20}px;
|
|
`
|
|
|
|
export const TabTitle = styled(T9n)`
|
|
font-size: 10px;
|
|
font-weight: 500;
|
|
text-transform: uppercase;
|
|
color: ${({ theme }) => theme.colors.white};
|
|
`
|
|
|
|
export const TabButton = styled.button`
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
padding-left: 0;
|
|
padding-right: 0;
|
|
opacity: 0.4;
|
|
cursor: pointer;
|
|
border: none;
|
|
background: none;
|
|
`
|
|
|
|
export const Tab = styled.div.attrs({ role: 'tab' })`
|
|
position: relative;
|
|
|
|
&[aria-pressed="true"], :hover {
|
|
${TabButton} {
|
|
opacity: 1;
|
|
|
|
${TabTitle} {
|
|
font-weight: 600;
|
|
}
|
|
}
|
|
}
|
|
|
|
:only-child {
|
|
cursor: unset;
|
|
}
|
|
`
|
|
|
|
type TabIconProps = {
|
|
icon: 'watch' | 'plays' | 'players' | 'stats',
|
|
}
|
|
|
|
export const TabIcon = styled.div<TabIconProps>`
|
|
width: 22px;
|
|
height: 22px;
|
|
flex-shrink: 0;
|
|
margin-bottom: 5px;
|
|
background-image: url(/images/matchTabs/${({ icon }) => `${icon}.svg`});
|
|
background-repeat: no-repeat;
|
|
background-position: center;
|
|
background-size: contain;
|
|
|
|
${({ icon }) => (icon === 'players'
|
|
? css`
|
|
background-size: 25px;
|
|
`
|
|
: '')}
|
|
`
|
|
|
|
type TContainer = {
|
|
forWatchTab?: boolean,
|
|
hasScroll: boolean,
|
|
highlighted?: boolean,
|
|
}
|
|
|
|
export const Container = styled.div<TContainer>`
|
|
width: 320px;
|
|
margin-top: 14px;
|
|
max-height: calc(100vh - 130px);
|
|
overflow-y: ${({ forWatchTab }) => (forWatchTab ? 'hidden' : 'auto')};
|
|
padding-right: ${({ forWatchTab }) => (forWatchTab ? '0' : '')};
|
|
padding-left: 14px;
|
|
padding-right: ${({ hasScroll }) => (hasScroll ? '10px' : '')};
|
|
|
|
${customScrollbar}
|
|
|
|
@media ${devices.tablet} {
|
|
margin-top: 15px;
|
|
}
|
|
|
|
${isMobileDevice
|
|
? css`
|
|
padding: 0 5px;
|
|
padding-bottom: ${isIOS ? 60 : 78}px;
|
|
overflow-y: hidden;
|
|
max-height: initial;
|
|
|
|
@media (max-width: 750px){
|
|
width: 100%;
|
|
}
|
|
|
|
@media (orientation: landscape){
|
|
width: 100%;
|
|
}
|
|
`
|
|
: ''};
|
|
|
|
${({ highlighted }) => (highlighted
|
|
? css`
|
|
overflow-y: initial;
|
|
`
|
|
: '')}
|
|
`
|
|
|
|
type ButtonProps = {
|
|
active?: boolean,
|
|
}
|
|
|
|
export const Button = styled.button<ButtonProps>`
|
|
border: none;
|
|
outline: none;
|
|
position: relative;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
width: 100%;
|
|
height: 100%;
|
|
background: ${({ theme }) => theme.colors.playerActionBtnBackground};
|
|
box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.3);
|
|
border-radius: 2px;
|
|
|
|
${({ disabled }) => (
|
|
disabled
|
|
? css`
|
|
pointer-events: none;
|
|
opacity: 0.5;
|
|
`
|
|
: css`
|
|
cursor: pointer;
|
|
`
|
|
)}
|
|
|
|
:hover {
|
|
background-color: #555555;
|
|
}
|
|
|
|
span {
|
|
pointer-events: none;
|
|
}
|
|
|
|
@media ${devices.mobile} {
|
|
justify-content: center;
|
|
border-radius: 1.8px;
|
|
}
|
|
|
|
${({ active, theme }) => {
|
|
const bgColor = theme.colors.button
|
|
const bgHoverColor = theme.colors.buttonHover
|
|
|
|
return active ? css`
|
|
background-color: ${bgColor};
|
|
|
|
&:hover {
|
|
background-color: ${bgHoverColor};
|
|
}
|
|
` : ''
|
|
}}
|
|
`
|
|
|
|
export const DownloadButton = styled(Button)`
|
|
|
|
:hover {
|
|
background-color: ${({ theme }) => theme.colors.buttonHover};
|
|
}
|
|
|
|
${({ active }) => (active
|
|
? css`
|
|
border: 1px solid #FFFFFF;
|
|
border-radius: 2px;
|
|
background-color: black;
|
|
`
|
|
: '')}
|
|
`
|
|
|
|
export const Title = styled.span`
|
|
font-weight: 600;
|
|
font-size: 14px;
|
|
max-width: 55%;
|
|
line-height: 16px;
|
|
color: #ffffff;
|
|
overflow: hidden;
|
|
white-space: nowrap;
|
|
text-overflow:ellipsis;
|
|
`
|
|
|
|
export const BlockTitle = styled.span`
|
|
font-weight: 600;
|
|
font-size: 12px;
|
|
line-height: 18px;
|
|
text-align: start;
|
|
color: rgba(255, 255, 255, 0.5);
|
|
text-transform: uppercase;
|
|
`
|
|
|