diff --git a/package.json b/package.json index aac70aca..23a2b040 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,8 @@ "build-storybook": "build-storybook -s public", "start:auth": "REACT_APP_TYPE=auth-service react-scripts start", "test:auth": "REACT_APP_TYPE=auth-service react-scripts test", - "facr": "REACT_APP_CLIENT=facr react-scripts start" + "facr": "REACT_APP_CLIENT=facr react-scripts start", + "lff": "REACT_APP_CLIENT=lff react-scripts start" }, "dependencies": { "@stripe/react-stripe-js": "^1.4.0", diff --git a/public/images/lff_auth_logo.svg b/public/images/lff_auth_logo.svg new file mode 100644 index 00000000..e4f1e11c --- /dev/null +++ b/public/images/lff_auth_logo.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/images/score-switch-lff-mobile-off.svg b/public/images/score-switch-lff-mobile-off.svg new file mode 100644 index 00000000..4a6aade2 --- /dev/null +++ b/public/images/score-switch-lff-mobile-off.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/images/score-switch-lff-mobile-on.svg b/public/images/score-switch-lff-mobile-on.svg new file mode 100644 index 00000000..4744f8e1 --- /dev/null +++ b/public/images/score-switch-lff-mobile-on.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/images/score-switch-lff-off.svg b/public/images/score-switch-lff-off.svg new file mode 100644 index 00000000..fc638032 --- /dev/null +++ b/public/images/score-switch-lff-off.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/images/score-switch-lff-on.svg b/public/images/score-switch-lff-on.svg new file mode 100644 index 00000000..de204061 --- /dev/null +++ b/public/images/score-switch-lff-on.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/config/clients/index.tsx b/src/config/clients/index.tsx index e74608b5..b0857562 100644 --- a/src/config/clients/index.tsx +++ b/src/config/clients/index.tsx @@ -2,12 +2,14 @@ import type { ClientConfig } from './types' import { facr } from './facr' import { instat } from './instat' +import { lff } from './lff' export const currentClient = process.env.REACT_APP_CLIENT || 'instat' const clients = { facr, instat, + lff, } export const client: ClientConfig = clients[currentClient] diff --git a/src/config/clients/lff.tsx b/src/config/clients/lff.tsx new file mode 100644 index 00000000..486b1d05 --- /dev/null +++ b/src/config/clients/lff.tsx @@ -0,0 +1,28 @@ +import { + ClientConfig, + ClientIds, + ClientNames, +} from './types' + +export const lff: ClientConfig = { + auth: { + clientId: ClientIds.Lff, + }, + defaultLanguage: 'en', + description: 'Live sports streaming platform. Football, basketball, ice hockey and more. Access to various player playlists and game highlights. Multiple subscription options. Available across all devices.', + disabledPreferences: true, + name: ClientNames.Lff, + privacyLink: '/clients/instat/terms-and-conditions.html', + showSearch: true, + styles: { + background: 'background-image: url(/images/Checker.png);', + logo: 'lff_auth_logo.svg', + logoHeight: 6, + logoLeft: 1.2, + logoTop: 1.2, + logoWidth: 6, + matchLogoHeight: 2.5, + matchLogoWidth: 2.5, + }, + title: 'InStat TV - The Home of Sports Streaming', +} diff --git a/src/config/clients/types.tsx b/src/config/clients/types.tsx index 60978160..6fdc0968 100644 --- a/src/config/clients/types.tsx +++ b/src/config/clients/types.tsx @@ -9,11 +9,13 @@ type StyledCss = ReturnType export enum ClientIds { Facr = 'facr-ott-web', Instat = 'ott-web', + Lff = 'lff-ott-web', } export enum ClientNames { Facr = 'facr', Instat = 'instat', + Lff = 'lff', } export type ClientConfig = { diff --git a/src/features/App/AuthenticatedApp.tsx b/src/features/App/AuthenticatedApp.tsx index 7b627bed..56719971 100644 --- a/src/features/App/AuthenticatedApp.tsx +++ b/src/features/App/AuthenticatedApp.tsx @@ -36,7 +36,6 @@ const SystemSettings = lazy(() => import('features/SystemSettings')) export const AuthenticatedApp = () => { useLexicsConfig(indexLexics) - return ( diff --git a/src/features/AuthServiceApp/config/clients/index.tsx b/src/features/AuthServiceApp/config/clients/index.tsx index bddcd5b7..13caf0e8 100644 --- a/src/features/AuthServiceApp/config/clients/index.tsx +++ b/src/features/AuthServiceApp/config/clients/index.tsx @@ -2,12 +2,14 @@ import { ClientIds } from 'config/clients/types' import { facr } from './facr' import { instat } from './instat' +import { lff } from './lff' const clients = { [ClientIds.Facr]: facr, [ClientIds.Instat]: instat, + [ClientIds.Lff]: lff, } const params = new URLSearchParams(window.location.search) const clientId = params.get('client_id') as ClientIds -export const client = clients[clientId] || instat +export const client = clients[clientId] || lff diff --git a/src/features/AuthServiceApp/config/clients/lff.tsx b/src/features/AuthServiceApp/config/clients/lff.tsx new file mode 100644 index 00000000..880cec9e --- /dev/null +++ b/src/features/AuthServiceApp/config/clients/lff.tsx @@ -0,0 +1,42 @@ +import styled, { css } from 'styled-components/macro' + +import { lff as platformLff } from 'config/clients/lff' + +import type { ClientConfig } from './types' + +const Background = styled.div` + position: relative; + width: 100%; + min-height: 100vh; + display: flex; + justify-content: center; + background: linear-gradient(18.42deg, #242321 8.36%, #242321 42.61%, #DB1C49 86.2%); +` + +export const lff: ClientConfig = { + ...platformLff, + background: Background, + styles: { + input: css` + background-color: transparent; + :not(:last-child) { + border-color: ${({ theme }) => theme.colors.text100}; + } + `, + inputGroup: css` + border: 1px solid ${({ theme }) => theme.colors.text100}; + `, + loader: css` + color: #00257A; + `, + logo: css` + background-image: url(/images/lff_auth_logo.svg); + height: 220px; + width: 220px; + `, + submitButton: css` + background-color: #DF1C4A; + color: white; + `, + }, +} diff --git a/src/features/Common/Button/styled.tsx b/src/features/Common/Button/styled.tsx index b7e6e039..d6732d9e 100644 --- a/src/features/Common/Button/styled.tsx +++ b/src/features/Common/Button/styled.tsx @@ -1,6 +1,7 @@ import styled, { css } from 'styled-components/macro' import { isMobileDevice } from 'config/userAgent' +import { client } from 'config/clients' const baseButtonStyles = css` width: 272px; @@ -44,13 +45,18 @@ export const solidButtonStyles = css` font-weight: bold; border-color: transparent; background-color: #294FC3; - box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.3); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.3); ${isMobileDevice ? css` height: 30px; min-height: 30px; ` : ''}; + + ${client.name === 'lff' ? css` + background: #DF1C4A; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.3); + ` : ''} ` export const ButtonSolid = styled.button` diff --git a/src/features/HeaderFilters/components/DateFilter/styled.tsx b/src/features/HeaderFilters/components/DateFilter/styled.tsx index d9c71130..4f311a0d 100644 --- a/src/features/HeaderFilters/components/DateFilter/styled.tsx +++ b/src/features/HeaderFilters/components/DateFilter/styled.tsx @@ -1,6 +1,7 @@ import styled, { css } from 'styled-components/macro' import { isMobileDevice } from 'config/userAgent' +import { client } from 'config/clients' import { devices } from 'config' export const BaseButton = styled.button` @@ -23,6 +24,10 @@ export const Wrapper = styled.div` width: 100%; } + ${client.name === 'lff' ? css` + color: rgba(255, 255, 255, 0.5); + ` : ''} + ${isMobileDevice ? css` /* padding-top: 4px; */ @@ -80,6 +85,11 @@ export const DateButton = styled(BaseButton)` opacity: 0.5; margin-left: 10px; + ${client.name === 'lff' ? css` + color: rgba(255, 255, 255, 0.5); + opacity: 1; + ` : ''} + ${isMobileDevice ? css` position: static; @@ -148,6 +158,10 @@ export const WeekDay = styled(BaseButton)` :hover { color: #FFFFFF; } + + ${client.name === 'lff' ? css` + color: rgba(255, 255, 255, 0.5); + ` : ''} ${({ selected }) => ( selected diff --git a/src/features/HeaderMenu/styled.tsx b/src/features/HeaderMenu/styled.tsx index 76236a4c..df07f67b 100644 --- a/src/features/HeaderMenu/styled.tsx +++ b/src/features/HeaderMenu/styled.tsx @@ -36,11 +36,15 @@ export const HeaderLogo = styled(Logo)` height: ${client.styles.matchLogoHeight}rem; ` : '')} - ${isMobileDevice - ? css` - width: 65px; - height: 15px; - margin: 5px 22px; - ` - : ''} + ${isMobileDevice && client.name !== 'lff' ? css` + width: 65px; + height: 15px; + margin: 5px 22px; + ` : ''} + + ${isMobileDevice && client.name === 'lff' ? css` + width: 42px; + height: 42px; + margin: 5px 22px; + ` : ''} ` diff --git a/src/features/HeaderMobile/styled.tsx b/src/features/HeaderMobile/styled.tsx index a0aa1396..c3900ab7 100644 --- a/src/features/HeaderMobile/styled.tsx +++ b/src/features/HeaderMobile/styled.tsx @@ -5,7 +5,6 @@ import isUndefined from 'lodash/isUndefined' import { client } from 'config/clients' import { isMobileDevice } from 'config/userAgent' -import { Logo } from 'features/Logo' import { ModalWindow } from 'features/Modal/styled' import { Modal as BaseModal } from 'features/Modal' import { customScrollbar } from 'features/Common' @@ -15,7 +14,13 @@ export const DEFAULT_HEADER_COLOR = 'rgba(53, 96, 225, 0.56)' export const defaultHeaderStyles = ( color: string = DEFAULT_HEADER_COLOR, headerImage: string | undefined | null, ) => { - if (headerImage && client.name !== 'facr') { + if (client.name === 'lff') { + return css` + background: linear-gradient(38.47deg, #242321 26.08%, #DB1C49 95.99%), #000000; + ` + } + + if (headerImage && client.name === 'instat') { return css`background: url(${headerImage}.png); background-size: 100% 100%; @media (max-width: 450px){ @@ -93,20 +98,6 @@ export const HeaderGroup = styled.div` : ''}; ` -export const HeaderLogo = styled(Logo)` - ${({ isMatchPage }) => (isMatchPage ? css` - width: ${client.styles.matchLogoWidth}rem; - height: ${client.styles.matchLogoHeight}rem; - ` : '')} - - ${isMobileDevice - ? css` - width: 65px; - height: 15px; - ` - : ''} -` - type PositionProps = { isMatchPage?: boolean, left?: number, diff --git a/src/features/Logo/index.tsx b/src/features/Logo/index.tsx index e503b15d..9f1cc0e9 100644 --- a/src/features/Logo/index.tsx +++ b/src/features/Logo/index.tsx @@ -21,8 +21,8 @@ export const Logo = styled.div` ${isMobileDevice ? css` - width: 144px; - height: 33px; + width: 46px; + height: 46px; @media screen and (orientation: landscape){ width: 92px; diff --git a/src/features/MatchPage/index.tsx b/src/features/MatchPage/index.tsx index 2ee216d4..064d8991 100644 --- a/src/features/MatchPage/index.tsx +++ b/src/features/MatchPage/index.tsx @@ -70,7 +70,7 @@ const MatchPage = () => { return ( - +
diff --git a/src/features/MatchSidePlaylists/styled.tsx b/src/features/MatchSidePlaylists/styled.tsx index db186ccd..2cd20d4e 100644 --- a/src/features/MatchSidePlaylists/styled.tsx +++ b/src/features/MatchSidePlaylists/styled.tsx @@ -4,6 +4,7 @@ import { devices } from 'config/devices' import { isMobileDevice } from 'config/userAgent' import { customScrollbar } from 'features/Common' +import { client } from '../../config/clients' export const Wrapper = styled.div` ${isMobileDevice @@ -92,16 +93,17 @@ export const Button = styled.button` border-radius: 1.8px; } - ${({ active, theme }) => ( - active - ? css` - background-color: ${theme.colors.button}; - &:hover { - background-color: #0c3ccc; - } - ` - : '' - )} + ${({ active, theme }) => { + const bgColor = client.name === 'lff' ? '#A30C2F' : theme.colors.button + const bgHoverColor = client.name === 'lff' ? '#A30C2F' : '#0c3ccc' + + return active ? css` + background-color: ${bgColor}; + &:hover { + background-color: ${bgHoverColor}; + } + ` : '' + }} ` export const Title = styled.span` diff --git a/src/features/MatchSwitches/components/ScoreSwitch/index.tsx b/src/features/MatchSwitches/components/ScoreSwitch/index.tsx index 371a1a95..002ec11d 100644 --- a/src/features/MatchSwitches/components/ScoreSwitch/index.tsx +++ b/src/features/MatchSwitches/components/ScoreSwitch/index.tsx @@ -1,5 +1,6 @@ import { isMobileDevice } from 'config/userAgent' import { useMatchSwitchesStore } from 'features/MatchSwitches' +import { getSwitchScoreIconName } from 'helpers/getSwitchScoreIconName' import { Switch, @@ -20,7 +21,7 @@ export const ScoreSwitch = () => { > <Icon - iconName={isMobileDevice ? 'score-switch-mobile' : 'score-switch'} + iconName={getSwitchScoreIconName()} isOn={!isScoreHidden} /> </Switch> diff --git a/src/features/ProfileHeader/index.tsx b/src/features/ProfileHeader/index.tsx index 4ec20da9..da5b8e14 100644 --- a/src/features/ProfileHeader/index.tsx +++ b/src/features/ProfileHeader/index.tsx @@ -50,8 +50,9 @@ export const ProfileHeader = ({ const url = '/images/5704' const color = useProfileColor(profileId) const imageHeader = profileId === 5704 - && sportType === SportTypes.FOOTBALL - && profileType === ProfileTypes.TOURNAMENTS ? url : headerImage + && sportType === SportTypes.FOOTBALL + && profileType === ProfileTypes.TOURNAMENTS ? url : headerImage + return ( <Fragment> <HeaderStyled diff --git a/src/features/ProfileHeader/styled.tsx b/src/features/ProfileHeader/styled.tsx index 41eacf40..ed49f14f 100644 --- a/src/features/ProfileHeader/styled.tsx +++ b/src/features/ProfileHeader/styled.tsx @@ -13,7 +13,13 @@ export const DEFAULT_HEADER_COLOR = 'rgba(53, 96, 225, 0.56)' export const defaultHeaderStyles = ( color: string = DEFAULT_HEADER_COLOR, headerImage: string | undefined | null, ) => { - if (headerImage && client.name !== 'facr') { + if (client.name === 'lff') { + return css` + background: linear-gradient(38.47deg, #242321 26.08%, #DB1C49 95.99%), #000000; + ` + } + + if (headerImage && client.name === 'instat') { return css`background: url(${headerImage}.png); background-size: 100% 100%; @media (max-width: 450px){ @@ -56,6 +62,12 @@ export const HeaderStyled = styled.header<HeaderProps>` ${({ color, headerImage }) => defaultHeaderStyles(color, headerImage)} + ${({ color }) => ( + client.name === 'lff' ? css` + background: ${color}; + ` : '' + )} + ${isMobileDevice ? css` padding: 8px; @@ -87,20 +99,28 @@ export const HeaderLogo = styled(Logo)` width: ${client.styles.matchLogoWidth}rem; height: ${client.styles.matchLogoHeight}rem; ` : '')} - - ${isMobileDevice - ? css` - width: 85px; - height: 20px; - - @media (max-width: 450px){ - left: 48vw; - top: 5px; - transform: translateX(-50%); - position: absolute; - } - ` - : ''} + + ${client.name === 'lff' ? css` + top: 5px; + left: 20px; + ` : ''} + + ${isMobileDevice ? css` + width: 85px; + height: 20px; + + @media (max-width: 450px){ + left: 48vw; + top: 5px; + transform: translateX(-50%); + position: absolute; + } + ` : ''} + + ${client.name === 'lff' && isMobileDevice ? css` + width: 44px; + height: 44px; + ` : ''} ` type PositionProps = { diff --git a/src/features/Theme/config.tsx b/src/features/Theme/config.tsx index f97b844f..e85302dd 100644 --- a/src/features/Theme/config.tsx +++ b/src/features/Theme/config.tsx @@ -1,3 +1,5 @@ +import { client } from 'config/clients' + export const lightTheme = { colors: { background: '', @@ -21,14 +23,14 @@ export const lightTheme = { export const darkTheme = { colors: { - background: ` + background: client.name !== 'lff' ? ` radial-gradient( 49.07% 49.07% at 50% 29.54%, rgba(255, 255, 255, 0.14) 0%, rgba(255, 255, 255, 0) 100% ), rgba(0, 0, 0, 0.9) - `, + ` : '#1D1D1D', black: '#000000', black40: 'rgba(0, 0, 0, 0.4)', black70: 'rgba(0, 0, 0, 0.7)', diff --git a/src/features/TournamentList/components/TournamentMobile/index.tsx b/src/features/TournamentList/components/TournamentMobile/index.tsx index bdd1ce0a..985eab58 100644 --- a/src/features/TournamentList/components/TournamentMobile/index.tsx +++ b/src/features/TournamentList/components/TournamentMobile/index.tsx @@ -25,6 +25,7 @@ import { ScMatchesWrapper, ScSecondInfo, } from './styled' +import { client } from '../../../../config/clients' export type TournamentProps = { tournament: TournamentType & { @@ -53,9 +54,17 @@ export const TournamentMobile = ({ ProfileTypes.TOURNAMENTS, tournament.id, ) + + const activeWrapperColor = client.name === 'lff' ? '#A30C2F' : '#294FC3' + const wrapperColor = open ? activeWrapperColor : '#3f3f3f' + return ( <CardWrapperOuter> - <CardWrapper open={open} onClick={() => setOpen(!open)}> + <CardWrapper + onClick={() => setOpen(!open)} + color={wrapperColor} + open={open} + > <ScFirstInfo> <SportIcon fill={open ? '#ffffff' : ''} sport={sportType} /> <CountryFlag diff --git a/src/features/TournamentList/components/TournamentMobile/styled.tsx b/src/features/TournamentList/components/TournamentMobile/styled.tsx index a8b67aad..5fa9f457 100644 --- a/src/features/TournamentList/components/TournamentMobile/styled.tsx +++ b/src/features/TournamentList/components/TournamentMobile/styled.tsx @@ -22,11 +22,14 @@ export const CardWrapperOuter = styled.li.attrs({ : ''}; ` -export const CardWrapper = styled.div<{ open: boolean }>` +export const CardWrapper = styled.div<{ + color: string, + open: boolean, +}>` display: flex; align-items: center; - background-color: ${({ open }) => (open ? '#294FC3' : '#3f3f3f')}; + background-color: ${({ color }) => color}; cursor: pointer; ${isMobileDevice ? css` diff --git a/src/features/TournamentPage/hooks.tsx b/src/features/TournamentPage/hooks.tsx index 318076bd..dc4067c0 100644 --- a/src/features/TournamentPage/hooks.tsx +++ b/src/features/TournamentPage/hooks.tsx @@ -3,6 +3,7 @@ import { useState, useCallback, } from 'react' +import { useHistory } from 'react-router' import type { TournamentInfo } from 'requests' import { getTournamentInfo, getTournamentMatches } from 'requests' @@ -10,17 +11,23 @@ import { getTournamentInfo, getTournamentMatches } from 'requests' import { usePageParams } from 'hooks/usePageParams' import { useName } from 'features/Name' +import { isPermittedTournament } from '../../helpers/isPermittedTournament' export const useTournamentPage = () => { const [tournamentProfile, setTournamentProfile] = useState<TournamentInfo>(null) const { profileId: tournamentId, sportType } = usePageParams() const country = useName(tournamentProfile?.country || {}) + const history = useHistory() useEffect(() => { + if (!isPermittedTournament(tournamentId, sportType)) { + history.push('/') + } getTournamentInfo(sportType, tournamentId) .then(setTournamentProfile) }, [ + history, sportType, tournamentId, ]) diff --git a/src/features/UserAccount/components/Header/index.tsx b/src/features/UserAccount/components/Header/index.tsx index c53180ca..b568be31 100644 --- a/src/features/UserAccount/components/Header/index.tsx +++ b/src/features/UserAccount/components/Header/index.tsx @@ -20,16 +20,14 @@ const HeaderStyled = styled.header` margin-bottom: 0; } - ${isMobileDevice - ? css` - @media (max-width: 650px){ - margin-bottom: 20px; - } - @media (orientation: landscape){ - margin-bottom: 20px; - } - ` - : ''}; + ${isMobileDevice ? css` + @media (max-width: 650px) { + margin-bottom: 20px; + } + @media (orientation: landscape) { + margin-bottom: 20px; + } + ` : ''}; ` const HomeIcon = styled.div` @@ -46,18 +44,37 @@ export const HeaderLogo = styled(Logo)` top: ${client.styles.logoTop}rem; left: ${client.styles.logoLeft}rem; - ${isMobileDevice - ? css` - left: 50%; - transform: translateX(-50%); - ` - : ''} + ${isMobileDevice ? css` + left: 50%; + transform: translateX(-50%); + ` : ''} +` + +export const HeaderLffLogo = styled(Logo)` + position: absolute; + width: 80px; + height: 80px; + top: 36px; + left: 32px; + + ${isMobileDevice ? css` + width: 46px; + height: 46px; + left: 15px; + top: 15px; + ` : ''} ` export const Header = () => ( <HeaderStyled> <Link to={PAGES.home}> - <HeaderLogo /> + { + client.name === 'lff' ? ( + <HeaderLffLogo /> + ) : ( + <HeaderLogo /> + ) + } </Link> <Link to={PAGES.home}> <HomeIcon /> diff --git a/src/features/UserAccount/components/ScoreSwitch/index.tsx b/src/features/UserAccount/components/ScoreSwitch/index.tsx index 5fa04123..35f19246 100644 --- a/src/features/UserAccount/components/ScoreSwitch/index.tsx +++ b/src/features/UserAccount/components/ScoreSwitch/index.tsx @@ -2,13 +2,13 @@ import styled, { css } from 'styled-components/macro' import { isMobileDevice } from 'config/userAgent' import { devices } from 'config' - import { useMatchSwitchesStore } from 'features/MatchSwitches' import { Switch, Icon, Title as TitleBase, } from 'features/MatchSwitches/styled' +import { getSwitchScoreIconName } from 'helpers/getSwitchScoreIconName' type TWrapper = { isHidden?: boolean, @@ -61,7 +61,7 @@ export const ScoreSwitch = ({ className }: Props) => { <Icon width={1.8} height={1.4} - iconName={isMobileDevice ? 'score-switch-mobile' : 'score-switch'} + iconName={getSwitchScoreIconName()} isOn={isScoreHidden} /> </Switch> diff --git a/src/features/UserAccount/styled.tsx b/src/features/UserAccount/styled.tsx index 5de071b8..12ea84ab 100644 --- a/src/features/UserAccount/styled.tsx +++ b/src/features/UserAccount/styled.tsx @@ -6,6 +6,7 @@ import { devices } from 'config/devices' import { isMobileDevice } from 'config/userAgent' import { ButtonSolid, ButtonOutline } from 'features/Common/Button' +import { client } from '../../config/clients' export const SolidButton = styled(ButtonSolid)` width: auto; @@ -13,7 +14,7 @@ export const SolidButton = styled(ButtonSolid)` padding: 0 0.94rem; color: white; font-weight: bold; - background-color: #294fc4; + background-color: ${client.name === 'lff' ? '#A30C2F' : '#294fc4'}; box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.3); border-color: transparent; border-radius: 5px; diff --git a/src/helpers/getSwitchScoreIconName/index.tsx b/src/helpers/getSwitchScoreIconName/index.tsx new file mode 100644 index 00000000..3a777b93 --- /dev/null +++ b/src/helpers/getSwitchScoreIconName/index.tsx @@ -0,0 +1,17 @@ +import { isMobileDevice } from 'config/userAgent' +import { client } from 'config/clients' + +export const getSwitchScoreIconName = () => { + switch (true) { + case client.name === 'lff' && !isMobileDevice: + return 'score-switch-lff' + case client.name === 'lff' && isMobileDevice: + return 'score-switch-lff-mobile' + case client.name !== 'lff' && !isMobileDevice: + return 'score-switch' + case client.name !== 'lff' && isMobileDevice: + return 'score-switch-mobile' + default: + return 'score-switch' + } +} diff --git a/src/helpers/isPermittedTournament/index.tsx b/src/helpers/isPermittedTournament/index.tsx new file mode 100644 index 00000000..8dbae6c3 --- /dev/null +++ b/src/helpers/isPermittedTournament/index.tsx @@ -0,0 +1,15 @@ +import includes from 'lodash/includes' + +import { client } from 'config/clients' +import { SportTypes } from 'config/sportTypes' + +export const isPermittedTournament = ( + tournamentId: number, + sportType: SportTypes, +) => { + if (client.name !== 'lff') { + return true + } + + return includes([928, 1620], tournamentId) && sportType === 1 +}