import React, { PureComponent } from 'react'; import { connect } from 'react-redux'; import { setUsersSearchQuery } from './state/reducers'; import { getInviteesCount, getUsersSearchQuery } from './state/selectors'; import { FilterInput } from 'app/core/components/FilterInput/FilterInput'; import { RadioButtonGroup, LinkButton } from '@grafana/ui'; export interface Props { searchQuery: string; setUsersSearchQuery: typeof setUsersSearchQuery; onShowInvites: () => void; pendingInvitesCount: number; canInvite: boolean; showInvites: boolean; externalUserMngLinkUrl: string; externalUserMngLinkName: string; } export class UsersActionBar extends PureComponent { render() { const { canInvite, externalUserMngLinkName, externalUserMngLinkUrl, searchQuery, pendingInvitesCount, setUsersSearchQuery, onShowInvites, showInvites, } = this.props; const options = [ { label: 'Users', value: 'users' }, { label: `Pending Invites (${pendingInvitesCount})`, value: 'invites' }, ]; return (
{pendingInvitesCount > 0 && (
)}
{canInvite && Invite} {externalUserMngLinkUrl && ( {externalUserMngLinkName} )}
); } } function mapStateToProps(state: any) { return { searchQuery: getUsersSearchQuery(state.users), pendingInvitesCount: getInviteesCount(state.users), externalUserMngLinkName: state.users.externalUserMngLinkName, externalUserMngLinkUrl: state.users.externalUserMngLinkUrl, canInvite: state.users.canInvite, }; } const mapDispatchToProps = { setUsersSearchQuery, }; export default connect(mapStateToProps, mapDispatchToProps)(UsersActionBar);