/
UserDetailsView.tsx
52 lines (46 loc) · 1.85 KB
/
UserDetailsView.tsx
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
import * as React from 'react';
import * as Tab from 'react-bootstrap/lib/Tab';
import * as Tabs from 'react-bootstrap/lib/Tabs';
import { connect } from 'react-redux';
import { compose } from 'redux';
import { TranslateProps, withTranslation } from '@waldur/i18n';
import { UserEvents } from '@waldur/user/list/UserEvents';
import { isVisibleForSupportOrStaff, userManageIsVisible } from '@waldur/user/support/selectors';
import { UserDetailsTable } from '@waldur/user/support/UserDetailsTable';
import { UserEditContainer } from '@waldur/user/support/UserEditContainer';
import { UserDetails } from '@waldur/workspace/types';
export interface UserDetailsViewProps extends TranslateProps {
user: UserDetails;
isVisibleForSupportOrStaff: boolean;
userManageIsVisible: boolean;
userEventsIsVisible: boolean;
}
export const PureUserDetailsView = (props: UserDetailsViewProps) => (
<Tabs defaultActiveKey={1} id="user-details" unmountOnExit={true}>
{props.isVisibleForSupportOrStaff && (
<Tab eventKey={1} title={props.translate('Details')}>
<div className="m-t-sm">
<UserDetailsTable user={props.user}/>
</div>
</Tab>
)}
<Tab eventKey={2} title={props.translate('Audit log')}>
<div className="m-t-sm">
<UserEvents user={props.user} showActions={false}/>
</div>
</Tab>
{props.userManageIsVisible && (
<Tab eventKey={3} title={props.translate('Manage')}>
<div className="m-t-sm">
<UserEditContainer user={props.user} showDeleteButton={false}/>
</div>
</Tab>
)}
</Tabs>
);
const mapStateToProps = state => ({
userManageIsVisible: userManageIsVisible(state),
isVisibleForSupportOrStaff: isVisibleForSupportOrStaff(state),
});
const enhance = compose(withTranslation, connect(mapStateToProps));
export const UserDetailsView = enhance(PureUserDetailsView);