Ott 399 click outside (#125)

keep-around/af30b88d367751c9e05a735e4a0467a96238ef47
Armen 5 years ago committed by GitHub
parent f481720735
commit 3169729207
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 56
      src/features/MatchCard/CardFinishedHover/index.tsx
  2. 47
      src/features/MatchCard/CardLiveHover/index.tsx
  3. 4
      src/features/MatchCard/styled.tsx

@ -1,8 +1,10 @@
import type { MouseEvent } from 'react'
import React from 'react' import React from 'react'
import { Link } from 'react-router-dom' import { Link } from 'react-router-dom'
import { CloseButton } from 'features/Common' import { CloseButton } from 'features/Common'
import { OutsideClick } from 'features/OutsideClick'
import { import {
CardHoverInner, CardHoverInner,
@ -19,33 +21,39 @@ type CardFinishedHoverProps = {
sportName: string, sportName: string,
} }
const stopProp = (e: MouseEvent<HTMLDivElement>) => {
e.stopPropagation()
}
export const CardFinishedHover = ({ export const CardFinishedHover = ({
id, id,
onClose, onClose,
sportName, sportName,
}: CardFinishedHoverProps) => ( }: CardFinishedHoverProps) => (
<CardHoverWrapper> <OutsideClick onClick={onClose}>
<CardHoverInner> <CardHoverWrapper onClick={onClose}>
<CloseButton onClick={onClose} /> <CardHoverInner>
<CardHoverTitle t='match_video' /> <CloseButton onClick={onClose} />
<Rows> <CardHoverTitle t='match_video' />
<Row> <Rows onClick={stopProp}>
<Link to={`/${sportName}/matches/${id}`}> <Row>
<MoreVideo t='full_game' /> <Link to={`/${sportName}/matches/${id}`}>
</Link> <MoreVideo t='full_game' />
<MoreVideo t='game_time' /> </Link>
</Row> <MoreVideo t='game_time' />
</Row>
<Row>
<MoreVideo t='highlights' /> <Row>
<MoreVideo t='goals' /> <MoreVideo t='highlights' />
<MoreVideo t='interview' /> <MoreVideo t='goals' />
</Row> <MoreVideo t='interview' />
</Row>
<Row>
<MoreVideo t='players_video' /> <Row>
</Row> <MoreVideo t='players_video' />
</Rows> </Row>
</CardHoverInner> </Rows>
</CardHoverWrapper> </CardHoverInner>
</CardHoverWrapper>
</OutsideClick>
) )

@ -1,9 +1,10 @@
import React from 'react'
import type { MouseEvent } from 'react' import type { MouseEvent } from 'react'
import React from 'react'
import { Link } from 'react-router-dom' import { Link } from 'react-router-dom'
import { CloseButton } from 'features/Common' import { CloseButton } from 'features/Common'
import { OutsideClick } from 'features/OutsideClick'
import { import {
CardHoverInner, CardHoverInner,
@ -29,26 +30,28 @@ export const CardLiveHover = ({
onClose, onClose,
sportName, sportName,
}: CardLiveHoverProps) => ( }: CardLiveHoverProps) => (
<CardHoverWrapper onClick={onClose}> <OutsideClick onClick={onClose}>
<CardHoverInner> <CardHoverWrapper onClick={onClose}>
<CloseButton onClick={onClose} /> <CardHoverInner>
<CardHoverTitle t='match_video' /> <CloseButton onClick={onClose} />
<Rows onClick={stopProp}> <CardHoverTitle t='match_video' />
<Row> <Rows onClick={stopProp}>
<Link to={`/${sportName}/matches/${id}`}> <Row>
<MoreVideo t='watch_now' /> <Link to={`/${sportName}/matches/${id}`}>
</Link> <MoreVideo t='watch_now' />
<Link to={`/${sportName}/matches/${id}`}> </Link>
<MoreVideo t='watch_from_beginning' /> <Link to={`/${sportName}/matches/${id}`}>
</Link> <MoreVideo t='watch_from_beginning' />
</Row> </Link>
</Row>
<Row> <Row>
<Link to={`/${sportName}/matches/${id}`}> <Link to={`/${sportName}/matches/${id}`}>
<MoreVideo t='watch_from_last_pause' /> <MoreVideo t='watch_from_last_pause' />
</Link> </Link>
</Row> </Row>
</Rows> </Rows>
</CardHoverInner> </CardHoverInner>
</CardHoverWrapper> </CardHoverWrapper>
</OutsideClick>
) )

@ -10,6 +10,7 @@ export const CardWrapper = styled.li.attrs({
position: relative; position: relative;
flex: 0 0 auto; flex: 0 0 auto;
min-width: ${MATCH_CARD_WIDTH}px; min-width: ${MATCH_CARD_WIDTH}px;
height: 100%;
padding-bottom: 18px; padding-bottom: 18px;
border-radius: 2px; border-radius: 2px;
border: 2px solid transparent; border: 2px solid transparent;
@ -158,12 +159,13 @@ export const MoreVideo = styled(T9n)`
export const CardHoverWrapper = styled(CardWrapper)` export const CardHoverWrapper = styled(CardWrapper)`
padding: 16px 24px; padding: 16px 24px;
cursor: default; cursor: pointer;
` `
export const CardHoverInner = styled.div` export const CardHoverInner = styled.div`
position: relative; position: relative;
overflow: hidden; overflow: hidden;
width: fit-content;
` `
export const CardHoverTitle = styled(T9n)` export const CardHoverTitle = styled(T9n)`

Loading…
Cancel
Save