From 8e19b230cc489e73148396fdaebae3168c6d1f29 Mon Sep 17 00:00:00 2001 From: Andrei Dekterev Date: Thu, 8 Dec 2022 11:20:42 +0300 Subject: [PATCH] fix(#210): add link to smartbanner for ios --- .drone.yml | 2 +- src/components/SmartBanner/index.tsx | 5 ++++- src/config/clients/insports.tsx | 1 + src/config/clients/types.tsx | 1 + src/config/userAgent.tsx | 2 ++ src/features/HeaderMobile/index.tsx | 16 ++++++++++++---- src/features/HomePage/hooks.tsx | 4 +++- src/features/HomePage/index.tsx | 2 ++ src/requests/getUserInfo.tsx | 1 + 9 files changed, 27 insertions(+), 7 deletions(-) diff --git a/.drone.yml b/.drone.yml index 66e5e6a6..4ab93d7c 100644 --- a/.drone.yml +++ b/.drone.yml @@ -184,7 +184,7 @@ steps: depends_on: - npm-install - - name: deploy-lff + - name: deploy-diwansport image: amazon/aws-cli:latest environment: AWS_ACCESS_KEY_ID: diff --git a/src/components/SmartBanner/index.tsx b/src/components/SmartBanner/index.tsx index 97f24a58..817341d4 100644 --- a/src/components/SmartBanner/index.tsx +++ b/src/components/SmartBanner/index.tsx @@ -1,6 +1,7 @@ import { Icon } from 'features/Icon' import { add } from 'date-fns' +import { isIOS } from 'config' import { ScBannerWrap, @@ -38,7 +39,9 @@ export const SmartBanner = ({ setIsOpenDownload }: SmartBannerProps) => ( inSports – the Home of Sports Streaming { diff --git a/src/config/clients/insports.tsx b/src/config/clients/insports.tsx index ec1258c0..95bb14cb 100644 --- a/src/config/clients/insports.tsx +++ b/src/config/clients/insports.tsx @@ -15,6 +15,7 @@ export const insports: ClientConfig = { name: ClientNames.Insports, privacyLink: '/privacy-policy-and-statement?client_id=insports-ott-web', showSearch: true, + showSmartBanner: true, styles: { background: 'background-image: url(/images/Checker.png);', logo: 'insports-logo.svg', diff --git a/src/config/clients/types.tsx b/src/config/clients/types.tsx index febb8d15..77f01e9b 100644 --- a/src/config/clients/types.tsx +++ b/src/config/clients/types.tsx @@ -35,6 +35,7 @@ export type ClientConfig = { privacyLink: string, requests?: Record, showSearch?: boolean, + showSmartBanner?: boolean, styles: { background?: string, homePageHeader?: StyledCss, diff --git a/src/config/userAgent.tsx b/src/config/userAgent.tsx index b0405c07..15dcc250 100644 --- a/src/config/userAgent.tsx +++ b/src/config/userAgent.tsx @@ -1,3 +1,5 @@ export const isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) +export const isAndroid = /Android/.test(navigator.userAgent) + export const isMobileDevice = /iPhone|Android/.test(navigator.userAgent) diff --git a/src/features/HeaderMobile/index.tsx b/src/features/HeaderMobile/index.tsx index 86d26f4c..2435e6f8 100644 --- a/src/features/HeaderMobile/index.tsx +++ b/src/features/HeaderMobile/index.tsx @@ -1,7 +1,7 @@ import { useRecoilValue } from 'recoil' -import { isIOS } from 'config/userAgent' -import { isLffClient } from 'config/clients' +import { isAndroid, isIOS } from 'config/userAgent' +import { client, isLffClient } from 'config/clients' import { HeaderMenu } from 'features/HeaderMenu' import { DateFilter } from 'features/HeaderFilters' @@ -10,6 +10,8 @@ import { SportsFilter } from 'features/SportsFilter' import { isSportFilterShownAtom } from 'features/HomePage/Atoms/HomePageAtoms' import { SmartBanner } from 'components/SmartBanner' +import { UserInfo } from 'requests' + import { HeaderStyled, ScoreSwitchWrapper, @@ -19,16 +21,22 @@ import { type HeaderBannerProps = { isOpenDownload: boolean, setIsOpenDownload: (open: boolean) => void, + userInfo?: UserInfo, } -export const HeaderMobile = ({ isOpenDownload, setIsOpenDownload }: HeaderBannerProps) => { +export const HeaderMobile = ({ + isOpenDownload, + setIsOpenDownload, + userInfo, +}: HeaderBannerProps) => { const isSportFilterShown = useRecoilValue(isSportFilterShownAtom) return ( <> { isOpenDownload - && !isIOS + && (isAndroid || (isIOS && userInfo?.has_subscription)) + && client.showSmartBanner && } diff --git a/src/features/HomePage/hooks.tsx b/src/features/HomePage/hooks.tsx index c8b11b82..83cc160b 100644 --- a/src/features/HomePage/hooks.tsx +++ b/src/features/HomePage/hooks.tsx @@ -34,7 +34,7 @@ const getTimezoneOffset = (date: Date) => { const getDate = (date: Date) => format(date, 'yyyy-MM-dd') export const useHomePage = () => { - const { user } = useAuthStore() + const { user, userInfo } = useAuthStore() const { selectedDate } = useHeaderFiltersStore() const [isOpenDownload, setIsOpenDownload] = useState(false) const [isShowConfirmPopup, setIsShowConfirmPopup] = useState(false) @@ -54,6 +54,7 @@ export const useHomePage = () => { })() // eslint-disable-next-line react-hooks/exhaustive-deps }, []) + useEffect(() => { const dateLastOpenSmartBanner = localStorage.getItem('dateLastOpenSmartBanner') if (!dateLastOpenSmartBanner @@ -85,5 +86,6 @@ export const useHomePage = () => { isOpenDownload, isShowConfirmPopup, setIsOpenDownload, + userInfo, } } diff --git a/src/features/HomePage/index.tsx b/src/features/HomePage/index.tsx index 6f9fd6ca..e4e476a2 100644 --- a/src/features/HomePage/index.tsx +++ b/src/features/HomePage/index.tsx @@ -29,6 +29,7 @@ const Home = () => { isOpenDownload, isShowConfirmPopup, setIsOpenDownload, + userInfo, } = useHomePage() return ( @@ -37,6 +38,7 @@ const Home = () => { ) : (
diff --git a/src/requests/getUserInfo.tsx b/src/requests/getUserInfo.tsx index db8c30a2..e02528b6 100644 --- a/src/requests/getUserInfo.tsx +++ b/src/requests/getUserInfo.tsx @@ -18,6 +18,7 @@ export type UserInfo = { }, email: string, firstname: string | null, + has_subscription: boolean, is_unsubscribed: boolean | null, language: { id: number | null,