File tree Expand file tree Collapse file tree 12 files changed +81
-29
lines changed
__tests__/shared/components/challenge-listing/__snapshots__ Expand file tree Collapse file tree 12 files changed +81
-29
lines changed Original file line number Diff line number Diff line change @@ -30,6 +30,7 @@ exports[`Matches shallow shapshot 1`] = `
30
30
}
31
31
}
32
32
onClick = { null }
33
+ plusOne = { false }
33
34
url = " url"
34
35
/>
35
36
</Router >
Original file line number Diff line number Diff line change 17
17
.rc-tooltip-placement-topLeft .rc-tooltip-arrow ,
18
18
.rc-tooltip-placement-topRight .rc-tooltip-arrow {
19
19
border-top-color : $tc-gray-80 ;
20
+ background : url (assets/images/tooltip-arrow.svg );
20
21
}
21
22
22
23
.rc-tooltip-placement-right .rc-tooltip-arrow ,
Original file line number Diff line number Diff line change @@ -7,6 +7,8 @@ $prize-space-10: $base-unit * 2;
7
7
max-width : 480px ;
8
8
padding : 10px 10px 0 10px ;
9
9
overflow : hidden ;
10
+ background-color : #2a2a2a ;
11
+ border-radius : 8px ;
10
12
11
13
.bonuses {
12
14
border-top : 1px solid $tc-gray-70 ;
Original file line number Diff line number Diff line change @@ -35,6 +35,11 @@ export default function Prize({
35
35
</ div >
36
36
) ;
37
37
38
+ function placeArrow ( TooltipNode ) {
39
+ const arrow = TooltipNode . querySelector ( '.rc-tooltip-arrow' ) ;
40
+ arrow . style . left = '33%' ;
41
+ }
42
+
38
43
const component = (
39
44
< div
40
45
// eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex
@@ -43,7 +48,7 @@ export default function Prize({
43
48
>
44
49
{ ( ( onlyShowTooltipForPrize && ! withoutTooltip )
45
50
? (
46
- < Tooltip content = { tip } >
51
+ < Tooltip content = { tip } placeArrow = { placeArrow } >
47
52
{ prizeUI }
48
53
</ Tooltip >
49
54
)
Original file line number Diff line number Diff line change @@ -89,21 +89,24 @@ export default function ChallengeStatus(props) {
89
89
winners = winners . slice ( 0 , MAX_VISIBLE_WINNERS ) ;
90
90
winners . push ( lastItem ) ;
91
91
}
92
+
92
93
const leaderboard = winners && winners . map ( ( winner ) => {
93
94
if ( winner . isLastItem ) {
94
95
return (
95
96
/* TODO: No, should not reuse avatar for displaying "+1" in
96
97
* a circle. Should be a separate component for that. */
97
- < LeaderboardAvatar
98
- key = { winner . handle }
99
- member = { winner }
100
- onClick = { ( ) => (
101
- setImmediate ( ( ) => selectChallengeDetailsTab ( DETAIL_TABS . WINNERS ) )
102
- ) }
103
- openNewTab = { openChallengesInNewTabs }
104
- url = { detailLink }
105
- plusOne
106
- />
98
+ < div styleName = "avatar-container" key = { winner . handle } >
99
+ < LeaderboardAvatar
100
+ key = { winner . handle }
101
+ member = { winner }
102
+ onClick = { ( ) => (
103
+ setImmediate ( ( ) => selectChallengeDetailsTab ( DETAIL_TABS . WINNERS ) )
104
+ ) }
105
+ openNewTab = { openChallengesInNewTabs }
106
+ url = { `${ detailLink } ?tab=winners` }
107
+ plusOne
108
+ />
109
+ </ div >
107
110
) ;
108
111
}
109
112
const userProfile = getProfile ( winner ) ;
Original file line number Diff line number Diff line change @@ -45,10 +45,12 @@ $status-radius-4: $corner-radius * 2;
45
45
}
46
46
47
47
.avatar-container {
48
- margin-right : 30px ;
48
+ margin-right : 0 ;
49
+ margin-left : 10px ;
49
50
50
51
@include xl {
51
- margin-right : 30px ;
52
+ margin-right : 0 ;
53
+ margin-left : 10px ;
52
54
}
53
55
54
56
> span {
Original file line number Diff line number Diff line change @@ -18,7 +18,7 @@ class LeaderboardAvatar extends Component {
18
18
19
19
render ( ) {
20
20
const {
21
- onClick, url,
21
+ onClick, plusOne , url,
22
22
} = this . props ;
23
23
const { member } = this . state ;
24
24
const targetURL = url || `${ window . origin } /members/${ member . handle } ` ;
@@ -40,9 +40,19 @@ class LeaderboardAvatar extends Component {
40
40
openNewTab = { ! _ . includes ( window . origin , 'www' ) }
41
41
styleName = { `leaderboard-avatar ${ member . position || member . isSmr ? '' : 'light-gray' } ` }
42
42
>
43
- < span styleName = { member . position ? `placement placement-${ member . position } ` : 'hidden' } >
44
- { formatOrdinals ( member . position ) }
45
- </ span >
43
+ { plusOne
44
+ ? (
45
+ < div >
46
+ < div >
47
+ < span styleName = "plus" > { member . handle } </ span >
48
+ </ div >
49
+ </ div >
50
+ ) : (
51
+ < span styleName = { member . position ? `placement placement-${ member . position } ` : 'hidden' } >
52
+ { formatOrdinals ( member . position ) }
53
+ </ span >
54
+ )
55
+ }
46
56
</ Link >
47
57
) ;
48
58
}
@@ -51,14 +61,14 @@ class LeaderboardAvatar extends Component {
51
61
LeaderboardAvatar . defaultProps = {
52
62
member : { } ,
53
63
onClick : null ,
54
- // plusOne: false,
64
+ plusOne : false ,
55
65
url : '' ,
56
66
} ;
57
67
58
68
LeaderboardAvatar . propTypes = {
59
69
member : PT . shape ( { } ) ,
60
70
onClick : PT . func ,
61
- // plusOne: PT.bool,
71
+ plusOne : PT . bool ,
62
72
url : PT . string ,
63
73
} ;
64
74
Original file line number Diff line number Diff line change @@ -33,8 +33,25 @@ $leader-radius-4: $corner-radius * 2;
33
33
}
34
34
}
35
35
36
+ .plus {
37
+ @include roboto-medium ;
38
+
39
+ width : 25px ;
40
+ height : 25px ;
41
+ background-color : #e0faf3 ;
42
+ font-size : 11px ;
43
+ color : #2a2a2a ;
44
+ font-weight : 500 ;
45
+ border-radius : $leader-radius-50 ;
46
+ display : flex ;
47
+ align-self : center ;
48
+ justify-content : center ;
49
+ flex-direction : column ;
50
+ margin-left : 0 ;
51
+ padding : 4px ;
52
+ }
53
+
36
54
.placement {
37
- position : absolute ;
38
55
display : flex ;
39
56
width : 24px ;
40
57
height : 24px ;
Original file line number Diff line number Diff line change @@ -192,8 +192,6 @@ function placeArrow(TooltipNode) {
192
192
if ( rootTopOffset < tooltipTopOffset ) {
193
193
toolTip . style . top = `${ parseInt ( toolTip . style . top , 10 ) - 20 } px` ;
194
194
arrow . style . top = '-5px' ;
195
- } else {
196
- arrow . style . top = '100%' ;
197
195
}
198
196
}
199
197
You can’t perform that action at this time.
0 commit comments