feat(in-565): ads on home and match pages #255
Merged
andrey.dekterev
merged 2 commits from IN-565-match-ads into develop 2 years ago
Loading…
Reference in new issue
There is no content yet.
Delete Branch 'IN-565-match-ads'
Deleting a branch is permanent. It CANNOT be undone. Continue?
https://insports.atlassian.net/browse/IN-565
import { memo, MouseEvent } from 'react'type MouseEvent
const matchMobileAds = [16, 17, 22, 23, 24]const chooseStyle = (type: number) => {switch (true) {switch (type)
import { isMobileDevice } from 'config'import { AdComponent } from './components/AdComponent'import { AdsPropsType } from './types'import type
import { AdsListType } from 'requests'import type
&& (<HeaderAds ads={isMobileDevice? ads?.mobile?.filter(({ position }) => HEADER_MOBILE_ADS.includes(position.id))здесь ? уже не нужен после ads
const [orientation, setOrientation] = useState(window.orientation)useEffect(() => {const handleOrientationChange = () => setOrientation(window.orientation)используй хук useEventListener и его можно добавить в отделный хук src/hooks, может понадобиться в других местах
{ads&& isFirstBlock&& (isMobileDevice? map(ads?.mobile, (ad: AdType) => ad?.position.id === PLAYS_BOTTOM_MOBILE? не нужен после ads
import filter from 'lodash/filter'import map from 'lodash/map'import { isMobileDevice } from 'config/userAgent'{!isMobileDevice&& ads&& (map(ads?.match, (ad: AdType) => ad?.position.id === MATCH_ADS.WATCH_TOP?import { useEventListener, useModalRoot } from 'hooks'import { isIOS } from 'config/userAgent'import { AdType } from 'requests'type
&& (<EventsAdsWrapper hasScroll={hasTabPaneScroll}>{isMobileDevice? map(ads?.mobile, (ad: AdType) => ad?.position.id === PLAYS_TOP_MOBILE?<PlayerAdsWrapper isFullscreen={isFullscreen}><HeaderAds ads={isMobileDevice? ads?.mobile?.filter(({ position }) => position.id === PLAYER_MOBILE_ADS)?<MatchCard key={match.id} match={match} />))}{open && (<>где-то используется Fragment, а где-то скобки, может привести к одному виду?
const isNeedBanner = Number(views?.HOME) % frequency === 0const isVideo = checkVideo(media.url)const currentAdsTime = duration - shownTimeа для чего вообще нужна эта переменная?
Чтоб понимать, сколько времени еще нужно показывать рекламу на странице матча после выхода из режима Fullscreen
import { useAd } from './hooks'import { EventGA } from '../../types'type
Нельзя импортировать как type
const close = (e: MouseEvent<HTMLButtonElement>) => {e.stopPropagation()return handleClose()return?
const close = (e: MouseEvent<HTMLButtonElement>) => {e.stopPropagation()return handleClose()для чего во всех функциях добавлять return
/>)}{isVideo? <Video position={position.id} src={media.url} />alt
{isVideo? <Video position={position.id} src={media.url} />: (<Img position={position.id} src={media.url} />alt
position: number,}const matchMobileAds = [16, 17, 22, 23, 24]давай лучше для потомков все ид реклам в какой-то вид енума сделаем, где более-менее будет понятно, что это за реклама
return () => window.removeEventListener('orientationchange', handleOrientationChange)}, [])const currentAds = useMemo(() => (тут лучше переписать как-то так
const currentAds = useMemo(() => (find(ads.mobile, (ad) => ad.position.id === currentOrientation))
{ads&& isFirstBlock&& (isMobileDevice? map(ads?.mobile, (ad: AdType) => ad?.position.id === PLAYS_BOTTOM_MOBILEтут тоже отличается только ad?.position.id, передавай его сюда и все, либо в отдельную функцию вынеси, чтобы в тернарке не было почти одинаковых условий
&& ads&& (<EventsAdsWrapper hasScroll={hasTabPaneScroll}>{isMobileDeviceопять два раза map
{ads&& (<PlayerAdsWrapper isFullscreen={isFullscreen}><HeaderAds ads={и тут фильтр дважды)
efaa4c7795to18cc2b31eb2 years ago18cc2b31ebinto develop 2 years agoReviewers
18cc2b31eb.