import {Component} from 'react'; import styled from '@emotion/styled'; import Panel from 'sentry/components/panels/panel'; import PanelBody from 'sentry/components/panels/panelBody'; import PanelHeader from 'sentry/components/panels/panelHeader'; import PanelItem from 'sentry/components/panels/panelItem'; import QuestionTooltip from 'sentry/components/questionTooltip'; import Radio from 'sentry/components/radio'; import {t} from 'sentry/locale'; import {space} from 'sentry/styles/space'; import type {OrgRole} from 'sentry/types/organization'; import TextBlock from 'sentry/views/settings/components/text/textBlock'; const Label = styled('label')` display: flex; flex: 1; align-items: center; margin-bottom: 0; `; type Props = { disabled: boolean; enforceAllowed: boolean; enforceRetired: boolean; helpText: string | undefined; roleList: OrgRole[]; roleSelected: string; setSelected: (id: string) => void; }; class OrganizationRoleSelect extends Component { render() { const { disabled, enforceRetired, enforceAllowed, roleList, roleSelected, setSelected, helpText, } = this.props; return (
{t('Organization Role')}
{disabled && }
{roleList.map(role => { const {desc, name, id, isAllowed, isRetired: roleRetired} = role; const isRetired = enforceRetired && roleRetired; const isDisabled = disabled || isRetired || (enforceAllowed && !isAllowed); return ( !isDisabled && setSelected(id)} css={!isDisabled ? {} : {color: 'grey', cursor: 'default'}} > ); })}
); } } const StyledPanelHeader = styled(PanelHeader)` display: flex; gap: ${space(0.5)}; justify-content: left; `; export default OrganizationRoleSelect;