fix(#210): add link to smartbanner for ios

tunisia.insports.tv
Andrei Dekterev 3 years ago
parent 7d63348391
commit 8e19b230cc
  1. 2
      .drone.yml
  2. 5
      src/components/SmartBanner/index.tsx
  3. 1
      src/config/clients/insports.tsx
  4. 1
      src/config/clients/types.tsx
  5. 2
      src/config/userAgent.tsx
  6. 16
      src/features/HeaderMobile/index.tsx
  7. 4
      src/features/HomePage/hooks.tsx
  8. 2
      src/features/HomePage/index.tsx
  9. 1
      src/requests/getUserInfo.tsx

@ -184,7 +184,7 @@ steps:
depends_on: depends_on:
- npm-install - npm-install
- name: deploy-lff - name: deploy-diwansport
image: amazon/aws-cli:latest image: amazon/aws-cli:latest
environment: environment:
AWS_ACCESS_KEY_ID: AWS_ACCESS_KEY_ID:

@ -1,6 +1,7 @@
import { Icon } from 'features/Icon' import { Icon } from 'features/Icon'
import { add } from 'date-fns' import { add } from 'date-fns'
import { isIOS } from 'config'
import { import {
ScBannerWrap, ScBannerWrap,
@ -38,7 +39,9 @@ export const SmartBanner = ({ setIsOpenDownload }: SmartBannerProps) => (
<ScDescribe>inSports the Home of Sports Streaming</ScDescribe> <ScDescribe>inSports the Home of Sports Streaming</ScDescribe>
</ScTitleWrap> </ScTitleWrap>
<a <a
href='https://play.google.com/store/apps/details?id=instat.ott' href={isIOS
? 'https://apps.apple.com/es/app/insports-tv/id1643858776'
: 'https://play.google.com/store/apps/details?id=instat.ott'}
target='_blank' target='_blank'
rel='noreferrer' rel='noreferrer'
onClick={() => { onClick={() => {

@ -15,6 +15,7 @@ export const insports: ClientConfig = {
name: ClientNames.Insports, name: ClientNames.Insports,
privacyLink: '/privacy-policy-and-statement?client_id=insports-ott-web', privacyLink: '/privacy-policy-and-statement?client_id=insports-ott-web',
showSearch: true, showSearch: true,
showSmartBanner: true,
styles: { styles: {
background: 'background-image: url(/images/Checker.png);', background: 'background-image: url(/images/Checker.png);',
logo: 'insports-logo.svg', logo: 'insports-logo.svg',

@ -35,6 +35,7 @@ export type ClientConfig = {
privacyLink: string, privacyLink: string,
requests?: Record<ProcedureName, RequestParameters>, requests?: Record<ProcedureName, RequestParameters>,
showSearch?: boolean, showSearch?: boolean,
showSmartBanner?: boolean,
styles: { styles: {
background?: string, background?: string,
homePageHeader?: StyledCss, homePageHeader?: StyledCss,

@ -1,3 +1,5 @@
export const isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) export const isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent)
export const isAndroid = /Android/.test(navigator.userAgent)
export const isMobileDevice = /iPhone|Android/.test(navigator.userAgent) export const isMobileDevice = /iPhone|Android/.test(navigator.userAgent)

@ -1,7 +1,7 @@
import { useRecoilValue } from 'recoil' import { useRecoilValue } from 'recoil'
import { isIOS } from 'config/userAgent' import { isAndroid, isIOS } from 'config/userAgent'
import { isLffClient } from 'config/clients' import { client, isLffClient } from 'config/clients'
import { HeaderMenu } from 'features/HeaderMenu' import { HeaderMenu } from 'features/HeaderMenu'
import { DateFilter } from 'features/HeaderFilters' import { DateFilter } from 'features/HeaderFilters'
@ -10,6 +10,8 @@ import { SportsFilter } from 'features/SportsFilter'
import { isSportFilterShownAtom } from 'features/HomePage/Atoms/HomePageAtoms' import { isSportFilterShownAtom } from 'features/HomePage/Atoms/HomePageAtoms'
import { SmartBanner } from 'components/SmartBanner' import { SmartBanner } from 'components/SmartBanner'
import { UserInfo } from 'requests'
import { import {
HeaderStyled, HeaderStyled,
ScoreSwitchWrapper, ScoreSwitchWrapper,
@ -19,16 +21,22 @@ import {
type HeaderBannerProps = { type HeaderBannerProps = {
isOpenDownload: boolean, isOpenDownload: boolean,
setIsOpenDownload: (open: boolean) => void, setIsOpenDownload: (open: boolean) => void,
userInfo?: UserInfo,
} }
export const HeaderMobile = ({ isOpenDownload, setIsOpenDownload }: HeaderBannerProps) => { export const HeaderMobile = ({
isOpenDownload,
setIsOpenDownload,
userInfo,
}: HeaderBannerProps) => {
const isSportFilterShown = useRecoilValue(isSportFilterShownAtom) const isSportFilterShown = useRecoilValue(isSportFilterShownAtom)
return ( return (
<> <>
{ {
isOpenDownload isOpenDownload
&& !isIOS && (isAndroid || (isIOS && userInfo?.has_subscription))
&& client.showSmartBanner
&& <SmartBanner setIsOpenDownload={setIsOpenDownload} /> && <SmartBanner setIsOpenDownload={setIsOpenDownload} />
} }
<HeaderStyled> <HeaderStyled>

@ -34,7 +34,7 @@ const getTimezoneOffset = (date: Date) => {
const getDate = (date: Date) => format(date, 'yyyy-MM-dd') const getDate = (date: Date) => format(date, 'yyyy-MM-dd')
export const useHomePage = () => { export const useHomePage = () => {
const { user } = useAuthStore() const { user, userInfo } = useAuthStore()
const { selectedDate } = useHeaderFiltersStore() const { selectedDate } = useHeaderFiltersStore()
const [isOpenDownload, setIsOpenDownload] = useState(false) const [isOpenDownload, setIsOpenDownload] = useState(false)
const [isShowConfirmPopup, setIsShowConfirmPopup] = useState(false) const [isShowConfirmPopup, setIsShowConfirmPopup] = useState(false)
@ -54,6 +54,7 @@ export const useHomePage = () => {
})() })()
// eslint-disable-next-line react-hooks/exhaustive-deps // eslint-disable-next-line react-hooks/exhaustive-deps
}, []) }, [])
useEffect(() => { useEffect(() => {
const dateLastOpenSmartBanner = localStorage.getItem('dateLastOpenSmartBanner') const dateLastOpenSmartBanner = localStorage.getItem('dateLastOpenSmartBanner')
if (!dateLastOpenSmartBanner if (!dateLastOpenSmartBanner
@ -85,5 +86,6 @@ export const useHomePage = () => {
isOpenDownload, isOpenDownload,
isShowConfirmPopup, isShowConfirmPopup,
setIsOpenDownload, setIsOpenDownload,
userInfo,
} }
} }

@ -29,6 +29,7 @@ const Home = () => {
isOpenDownload, isOpenDownload,
isShowConfirmPopup, isShowConfirmPopup,
setIsOpenDownload, setIsOpenDownload,
userInfo,
} = useHomePage() } = useHomePage()
return ( return (
@ -37,6 +38,7 @@ const Home = () => {
<HeaderMobile <HeaderMobile
isOpenDownload={isOpenDownload} isOpenDownload={isOpenDownload}
setIsOpenDownload={setIsOpenDownload} setIsOpenDownload={setIsOpenDownload}
userInfo={userInfo}
/> />
) : ( ) : (
<Header /> <Header />

@ -18,6 +18,7 @@ export type UserInfo = {
}, },
email: string, email: string,
firstname: string | null, firstname: string | null,
has_subscription: boolean,
is_unsubscribed: boolean | null, is_unsubscribed: boolean | null,
language: { language: {
id: number | null, id: number | null,

Loading…
Cancel
Save