1
- import { Popover , Avatar , Typography , Row , Col , Divider } from "antd"
1
+ import { Popover , Avatar , Typography , Row , Col , Divider , Space } from "antd"
2
2
import { CheckOutlined , CloseOutlined } from "@ant-design/icons"
3
3
4
4
import { Status , StatusState } from "../models"
@@ -14,25 +14,48 @@ interface StatusStateIconProps {
14
14
15
15
export default function StatusStateIcon ( props : StatusStateIconProps ) : JSX . Element {
16
16
const states = props . statuses . map ( ( status ) => status . state )
17
- const content : JSX . Element = < div style = { { width : "350px" } } >
18
- { props . statuses . map ( ( status , idx ) => {
19
- return < Row key = { idx } >
20
- < Col span = "12" >
21
- { mapStateToIcon ( status . state ) }
22
- < Avatar size = "small" src = { status . avatarUrl } shape = "square" />
23
- < Text strong > { status . context } </ Text >
24
- </ Col >
25
- < Col span = "11" style = { { textAlign : "right" } } >
26
- < Link href = { status . targetUrl } target = "_blank" > Details</ Link >
27
- </ Col >
28
- { ( idx !== props . statuses . length - 1 ) ?
29
- < Divider style = { { margin : "5px 0px" } } /> : null }
30
- </ Row >
31
- } ) }
32
- </ div >
17
+ const content : JSX . Element = (
18
+ < div style = { {
19
+ width : "350px" ,
20
+ height : "200px" ,
21
+ overflow : "scroll"
22
+ } }
23
+ >
24
+ { props . statuses . map ( ( status , idx ) => {
25
+ return (
26
+ < Row key = { idx } >
27
+ < Col span = "12" >
28
+ < Space >
29
+ { mapStateToIcon ( status . state ) }
30
+ < Avatar size = "small" src = { status . avatarUrl } shape = "square" />
31
+ < Text
32
+ strong
33
+ ellipsis
34
+ style = { {
35
+ width : 100 ,
36
+ } }
37
+ >
38
+ { status . context }
39
+ </ Text >
40
+ </ Space >
41
+ </ Col >
42
+ < Col span = "11" style = { { textAlign : "right" } } >
43
+ < Link href = { status . targetUrl } target = "_blank" > Details</ Link >
44
+ </ Col >
45
+ { ( idx !== props . statuses . length - 1 ) ?
46
+ < Divider style = { { margin : "5px 0px" } } /> : null }
47
+ </ Row >
48
+ )
49
+ } ) }
50
+ </ div >
51
+ )
33
52
34
53
return (
35
- < Popover title = "Statuses" content = { content } >
54
+ < Popover
55
+ title = "Statuses"
56
+ trigger = "click"
57
+ content = { content }
58
+ >
36
59
{ mapStateToIcon ( mergeStatusStates ( states ) ) }
37
60
</ Popover >
38
61
)
0 commit comments