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
Collaborator
https://insports.atlassian.net/browse/IN-565
margarita.polyakova added 1 commit 2 years ago
margarita.polyakova requested review from andrey.dekterev 2 years ago
margarita.polyakova requested review from roman.rakov 2 years ago
margarita.polyakova requested review from ruslan.khairullin 2 years ago
roman.rakov approved these changes 2 years ago
ruslan.khairullin reviewed 2 years ago
import { memo, MouseEvent } from 'react'
Collaborator

type MouseEvent

type MouseEvent
const matchMobileAds = [16, 17, 22, 23, 24]
const chooseStyle = (type: number) => {
switch (true) {
Collaborator

switch (type)

switch (type)
import { isMobileDevice } from 'config'
import { AdComponent } from './components/AdComponent'
import { AdsPropsType } from './types'
Collaborator

import type

import type
import { AdsListType } from 'requests'
Collaborator

import type

import type
&& (
<HeaderAds ads={
isMobileDevice
? ads?.mobile?.filter(({ position }) => HEADER_MOBILE_ADS.includes(position.id))
Collaborator

здесь ? уже не нужен после ads

здесь ? уже не нужен после ads
const [orientation, setOrientation] = useState(window.orientation)
useEffect(() => {
const handleOrientationChange = () => setOrientation(window.orientation)
Collaborator

используй хук useEventListener и его можно добавить в отделный хук src/hooks, может понадобиться в других местах

используй хук useEventListener и его можно добавить в отделный хук src/hooks, может понадобиться в других местах
{ads
&& isFirstBlock
&& (isMobileDevice
? map(ads?.mobile, (ad: AdType) => ad?.position.id === PLAYS_BOTTOM_MOBILE
Collaborator

? не нужен после ads

? не нужен после ads
import filter from 'lodash/filter'
import map from 'lodash/map'
import { isMobileDevice } from 'config/userAgent'
Collaborator
import { isMobileDevice } from 'config'
``` import { isMobileDevice } from 'config' ```
{!isMobileDevice
&& ads
&& (
map(ads?.match, (ad: AdType) => ad?.position.id === MATCH_ADS.WATCH_TOP
Collaborator

?

~~?~~
import { useEventListener, useModalRoot } from 'hooks'
import { isIOS } from 'config/userAgent'
import { AdType } from 'requests'
Collaborator

type

type
&& (
<EventsAdsWrapper hasScroll={hasTabPaneScroll}>
{isMobileDevice
? map(ads?.mobile, (ad: AdType) => ad?.position.id === PLAYS_TOP_MOBILE
Collaborator

?

~~?~~
<PlayerAdsWrapper isFullscreen={isFullscreen}>
<HeaderAds ads={
isMobileDevice
? ads?.mobile?.filter(({ position }) => position.id === PLAYER_MOBILE_ADS)
Collaborator

?

~~?~~
<MatchCard key={match.id} match={match} />
))}
{open && (
<>
Collaborator

где-то используется Fragment, а где-то скобки, может привести к одному виду?

где-то используется Fragment, а где-то скобки, может привести к одному виду?
andrey.dekterev reviewed 2 years ago
const isNeedBanner = Number(views?.HOME) % frequency === 0
const isVideo = checkVideo(media.url)
const currentAdsTime = duration - shownTime

а для чего вообще нужна эта переменная?

а для чего вообще нужна эта переменная?
Poster
Collaborator

Чтоб понимать, сколько времени еще нужно показывать рекламу на странице матча после выхода из режима Fullscreen

Чтоб понимать, сколько времени еще нужно показывать рекламу на странице матча после выхода из режима Fullscreen
import { useAd } from './hooks'
import { EventGA } from '../../types'

type

type
Poster
Collaborator

Нельзя импортировать как type

Нельзя импортировать как type
const close = (e: MouseEvent<HTMLButtonElement>) => {
e.stopPropagation()
return handleClose()

return?

return?
const close = (e: MouseEvent<HTMLButtonElement>) => {
e.stopPropagation()
return handleClose()

для чего во всех функциях добавлять return

для чего во всех функциях добавлять return
/>
)}
{isVideo
? <Video position={position.id} src={media.url} />

alt

alt
{isVideo
? <Video position={position.id} src={media.url} />
: (
<Img position={position.id} src={media.url} />

alt

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))

тут лучше переписать как-то так 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, передавай его сюда и все, либо в отдельную функцию вынеси, чтобы в тернарке не было почти одинаковых условий

тут тоже отличается только ad?.position.id, передавай его сюда и все, либо в отдельную функцию вынеси, чтобы в тернарке не было почти одинаковых условий
&& ads
&& (
<EventsAdsWrapper hasScroll={hasTabPaneScroll}>
{isMobileDevice

опять два раза map

опять два раза map
{ads
&& (
<PlayerAdsWrapper isFullscreen={isFullscreen}>
<HeaderAds ads={

и тут фильтр дважды)

и тут фильтр дважды)
margarita.polyakova added 1 commit 2 years ago
margarita.polyakova force-pushed IN-565-match-ads from efaa4c7795 to 18cc2b31eb 2 years ago
ruslan.khairullin approved these changes 2 years ago
andrey.dekterev merged commit 18cc2b31eb into develop 2 years ago
andrey.dekterev deleted branch IN-565-match-ads 2 years ago

Reviewers

andrey.dekterev was requested for review 2 years ago
roman.rakov approved these changes 2 years ago
ruslan.khairullin approved these changes 2 years ago
continuous-integration/drone/push Build is passing
The pull request has been merged as 18cc2b31eb.
Sign in to join this conversation.
No Label
No Milestone
No Assignees
4 Participants
Notifications
Due Date

No due date set.

Dependencies

No dependencies set.

Reference: frontend/spa_instat_tv#255
Loading…
There is no content yet.