1
- import React from 'react' ;
1
+ import React , { Component } from 'react' ;
2
+ import "./button-style.scss" ;
2
3
3
- export default ( props ) => {
4
- let { value, myValue, maxDown, maxUp, color, onVote, className, isLoginActive } = props ;
5
- let { voteAppToken} = localStorage ;
6
-
7
- let click = ( e , n ) => {
4
+ export default class NewButton extends Component {
5
+ handleClick ( e , n ) {
6
+ const { maxUp, maxDown, onVote} = this . props ;
8
7
onVote ( Math . min ( maxUp , Math . max ( n , - maxDown ) ) ) ;
9
8
e . preventDefault ( ) ;
10
9
return false ;
11
- } ;
10
+ }
12
11
13
- let titleText = ( n ) => {
12
+ titleText ( n , maxUp , maxDown ) {
14
13
n = Math . min ( maxUp , Math . max ( n , - maxDown ) ) ;
15
14
if ( n === 0 )
16
15
return "" ;
17
16
return n > 0 ? "+" + n : "" + n ;
18
- } ;
17
+ }
19
18
20
- let makeTriangle = ( n , fn , size , minForEnabled ) => {
19
+ makeTriangle ( n , fn , size , minForEnabled ) {
20
+ const { maxUp, maxDown, color} = this . props ;
21
21
const enabled = n !== 0 && ( n > 0 ? ( maxUp >= minForEnabled ) : ( maxDown >= minForEnabled ) ) ;
22
- const className = "vote-button__upDown" ;
22
+ const className = "vote-new- button__upDown" ;
23
23
if ( enabled ) {
24
24
return < a href = "#"
25
- title = { titleText ( n ) }
26
- onClick = { e => click ( e , n ) }
25
+ title = { this . titleText ( n , maxUp , maxDown ) }
26
+ onClick = { e => this . handleClick ( e , n ) }
27
27
className = { className } >
28
28
{ fn ( { size : size , color : color } ) }
29
29
</ a > ;
@@ -33,27 +33,27 @@ export default (props) => {
33
33
{ fn ( { size : size , color : "#eee" } ) }
34
34
</ a > ;
35
35
}
36
- } ;
37
-
38
- return voteAppToken ? ( < div className = "vote-button" style = { { color : color } } >
39
- { makeTriangle ( Infinity , triangleUp , 30 , 11 ) }
40
- { makeTriangle ( 10 , triangleUp , 20 , 2 ) }
41
- { makeTriangle ( 1 , triangleUp , 15 , 1 ) }
42
- < div className = "vote-button__value" title = { value + " was voted in total by all users." } >
36
+ }
37
+ render ( ) {
38
+ const { color, className, value, myValue, isLoggedIn} = this . props ;
39
+ return isLoggedIn ? ( < div className = "vote-new-button" style = { { color : color } } >
40
+ < div className = "vote-new-button__arrows" >
41
+ { this . makeTriangle ( 1 , triangleUp , 10 , 1 ) }
42
+ { this . makeTriangle ( - 1 , triangleDown , 10 , 1 ) }
43
+ </ div >
44
+ < div className = "vote-new-button__value" title = { value + " was voted in total by all users." } >
43
45
< span className = { className } > { value } </ span >
44
46
</ div >
45
- < div className = "vote-button__my-value" title = { myValue + " was voted by you." } >
47
+ < div className = "vote-new- button__my-value" title = { myValue + " was voted by you." } >
46
48
(< span className = { className } > { myValue } </ span > )
47
49
</ div >
48
- { makeTriangle ( - 1 , triangleDown , 15 , 1 ) }
49
- { makeTriangle ( - 10 , triangleDown , 20 , 2 ) }
50
- { makeTriangle ( - Infinity , triangleDown , 30 , 11 ) }
51
- </ div > ) : ( < div className = "vote-button" style = { { color : color } } >
52
- < div className = "vote-button__value" title = { value + " was voted in total by all users." } >
50
+ </ div > ) : ( < div className = "vote-new-button" style = { { color : color } } >
51
+ < div className = "vote-new-button__logout-value" title = { value + " was voted in total by all users." } >
53
52
< span className = { className } > { value } </ span >
54
53
</ div >
55
54
</ div > ) ;
56
- } ;
55
+ }
56
+ }
57
57
58
58
function triangleUp ( { color, size} ) {
59
59
let path = `m ${ size } ,0 -${ size } ,${ size / 3 * 2 } ${ size * 2 } ,0 z` ;
0 commit comments