-
Notifications
You must be signed in to change notification settings - Fork 12
/
SourceHomeTabs.jsx
82 lines (79 loc) · 2.71 KB
/
SourceHomeTabs.jsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
import React from 'react';
import { Tabs, Tab } from '@material-ui/core';
import { get } from 'lodash';
import { currentUserHasAccess } from '../../common/utils';
import ConceptContainerVersionList from '../common/ConceptContainerVersionList';
import SourceHomeChildrenList from './SourceHomeChildrenList';
import AboutAccordian from '../common/AboutAccordian';
import NewResourceButton from '../common/NewResourceButton';
import CommonFormDrawer from '../common/CommonFormDrawer';
import ConceptForm from '../concepts/ConceptForm';
const SourceHomeTabs = props => {
const {
tab, onChange, source, versions, location, versionedObjectURL, currentVersion,
aboutTab
} = props;
const about = get(source, 'extras.about')
const [conceptForm, setConceptForm] = React.useState(false);
const onNewClick = resource => {
if(resource === 'concept')
setConceptForm(true)
}
const hasAccess = currentUserHasAccess()
return (
<div className='col-md-12 sub-tab'>
<Tabs className='sub-tab-header col-md-8 no-side-padding' value={tab} onChange={onChange} aria-label="source-home-tabs" classes={{indicator: 'hidden'}}>
<Tab label="Concepts" />
<Tab label="Mappings" />
<Tab label="Versions" />
{aboutTab && <Tab label="About" />}
</Tabs>
{
hasAccess &&
<div className='col-md-4 no-right-padding' style={{textAlign: 'right'}}>
<NewResourceButton onClick={onNewClick} />
</div>
}
<div className='sub-tab-container' style={{display: 'flex', minHeight: '500px', width: '100%'}}>
{
tab === 0 &&
<SourceHomeChildrenList
source={source}
location={location}
versionedObjectURL={versionedObjectURL}
versions={versions}
currentVersion={currentVersion}
resource='concepts'
/>
}
{
tab === 1 &&
<SourceHomeChildrenList
source={source}
location={location}
versionedObjectURL={versionedObjectURL}
versions={versions}
currentVersion={currentVersion}
resource='mappings'
/>
}
{
tab === 2 &&
<ConceptContainerVersionList versions={versions} resource='source' />
}
{
aboutTab && tab === 3 &&
<AboutAccordian id={source.id} about={about} />
}
</div>
<CommonFormDrawer
isOpen={conceptForm}
onClose={() => setConceptForm(false)}
formComponent={
<ConceptForm onCancel={() => setConceptForm(false)} reloadOnSuccess={tab==0} parentURL={versionedObjectURL} />
}
/>
</div>
);
}
export default SourceHomeTabs;