1
1
import React , { Component } from 'react'
2
2
import PropTypes from 'prop-types'
3
- import { ModalHeader , ModalBody } from 'reactstrap'
3
+ import { Nav , NavItem , NavLink , ModalBody } from 'reactstrap'
4
+ import classnames from 'classnames'
4
5
5
6
import { addGlobalFile , addLocalFile } from '../../logic/util/files'
6
7
7
8
import Modal from '../Modal'
9
+ import Icon from '../Icon'
8
10
9
11
import UploadTab from './Components/UploadTab'
10
12
@@ -14,6 +16,7 @@ export default class FileSelector extends Component {
14
16
15
17
this . state = {
16
18
active : false ,
19
+ activeTab : 'new' ,
17
20
}
18
21
this . promiseHandlers = { }
19
22
@@ -34,6 +37,12 @@ export default class FileSelector extends Component {
34
37
} )
35
38
}
36
39
40
+ toggleTab ( name ) {
41
+ this . setState ( {
42
+ activeTab : name
43
+ } )
44
+ }
45
+
37
46
handleUpload ( content , file ) {
38
47
const { poolPath } = addGlobalFile (
39
48
this . context . store ,
@@ -76,18 +85,47 @@ export default class FileSelector extends Component {
76
85
)
77
86
}
78
87
88
+ renderTab ( ) {
89
+ switch ( this . state . activeTab ) {
90
+ default :
91
+ return < UploadTab handleUpload = { this . handleUpload } />
92
+ }
93
+ }
94
+
79
95
render ( ) {
80
96
return < Modal
81
97
isOpen = { this . state . active }
82
98
>
83
99
< div className = "modal-content" >
84
- < ModalHeader
85
- toggle = { this . toggle }
86
- >
87
- New image
88
- </ ModalHeader >
100
+ < Nav tabs >
101
+ < NavItem >
102
+ < NavLink
103
+ className = { classnames ( {
104
+ active : this . state . activeTab === 'new'
105
+ } ) }
106
+ onClick = { ( ) => this . toggleTab ( 'new' ) }
107
+ >
108
+ < Icon icon = "plus" weight = "s" />
109
+ </ NavLink >
110
+ </ NavItem >
111
+ < NavItem
112
+ className = "ml-auto"
113
+ style = { {
114
+ padding : '0.25em 0' ,
115
+ } }
116
+ >
117
+ < button
118
+ type = "button"
119
+ className = "close"
120
+ aria-label = "Close"
121
+ onClick = { this . toggle }
122
+ >
123
+ < span aria-hidden = "true" > ×</ span >
124
+ </ button >
125
+ </ NavItem >
126
+ </ Nav >
89
127
< ModalBody >
90
- < UploadTab handleUpload = { this . handleUpload } />
128
+ { this . renderTab ( ) }
91
129
</ ModalBody >
92
130
</ div >
93
131
</ Modal >
0 commit comments