@ant-design/icons#CrownFilled TypeScript Examples
The following examples show how to use
@ant-design/icons#CrownFilled.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: TeamMembers.tsx From posthog-foss with MIT License | 5 votes |
function LevelComponent(member: FusedTeamMemberType): JSX.Element | null {
const { user } = useValues(userLogic)
const { currentTeam } = useValues(teamLogic)
const { changeUserAccessLevel } = useActions(teamMembersLogic)
const myMembershipLevel = currentTeam ? currentTeam.effective_membership_level : null
if (!user) {
return null
}
function generateHandleClick(listLevel: TeamMembershipLevel): (event: React.MouseEvent) => void {
return function handleClick(event: React.MouseEvent) {
event.preventDefault()
changeUserAccessLevel(member.user, listLevel)
}
}
const isImplicit = member.organization_level >= OrganizationMembershipLevel.Admin
const levelName = membershipLevelToName.get(member.level) ?? `unknown (${member.level})`
const levelButton = (
<Button
data-attr="change-membership-level"
icon={member.level === OrganizationMembershipLevel.Owner ? <CrownFilled /> : undefined}
// Org admins have implicit access anyway, so it doesn't make sense to edit them
disabled={isImplicit}
>
{levelName}
</Button>
)
const allowedLevels = teamMembershipLevelIntegers.filter(
(listLevel) => !getReasonForAccessLevelChangeProhibition(myMembershipLevel, user, member, listLevel)
)
const disallowedReason = isImplicit
? `This user is a member of the project implicitly due to being an organization ${levelName}.`
: getReasonForAccessLevelChangeProhibition(myMembershipLevel, user, member, allowedLevels)
return disallowedReason ? (
<Tooltip title={disallowedReason}>{levelButton}</Tooltip>
) : (
<Dropdown
overlay={
<Menu>
{allowedLevels.map((listLevel) => (
<Menu.Item key={`${member.user.uuid}-level-${listLevel}`}>
<a href="#" onClick={generateHandleClick(listLevel)} data-test-level={listLevel}>
{listLevel > member.level ? (
<>
<UpOutlined style={{ marginRight: '0.5rem' }} />
Upgrade to project {membershipLevelToName.get(listLevel)}
</>
) : (
<>
<DownOutlined style={{ marginRight: '0.5rem' }} />
Downgrade to project {membershipLevelToName.get(listLevel)}
</>
)}
</a>
</Menu.Item>
))}
</Menu>
}
>
{levelButton}
</Dropdown>
)
}
Example #2
Source File: Members.tsx From posthog-foss with MIT License | 4 votes |
function LevelComponent(member: OrganizationMemberType): JSX.Element | null {
const { user } = useValues(userLogic)
const { currentOrganization } = useValues(organizationLogic)
const { changeMemberAccessLevel } = useActions(membersLogic)
const myMembershipLevel = currentOrganization ? currentOrganization.membership_level : null
if (!user) {
return null
}
function generateHandleClick(listLevel: OrganizationMembershipLevel): (event: React.MouseEvent) => void {
return function handleClick(event: React.MouseEvent) {
event.preventDefault()
if (!user) {
throw Error
}
if (listLevel === OrganizationMembershipLevel.Owner) {
Modal.confirm({
centered: true,
title: `Transfer organization ownership to ${member.user.first_name}?`,
content: `You will no longer be the owner of ${user.organization?.name}. After the transfer you will become an administrator.`,
icon: <SwapOutlined />,
okType: 'danger',
okText: 'Transfer Ownership',
onOk() {
changeMemberAccessLevel(member, listLevel)
},
})
} else {
changeMemberAccessLevel(member, listLevel)
}
}
}
const levelButton = (
<Button
data-attr="change-membership-level"
icon={member.level === OrganizationMembershipLevel.Owner ? <CrownFilled /> : undefined}
>
{membershipLevelToName.get(member.level) ?? `unknown (${member.level})`}
</Button>
)
const allowedLevels = organizationMembershipLevelIntegers.filter(
(listLevel) => !getReasonForAccessLevelChangeProhibition(myMembershipLevel, user, member, listLevel)
)
const disallowedReason = getReasonForAccessLevelChangeProhibition(myMembershipLevel, user, member, allowedLevels)
return disallowedReason ? (
<Tooltip title={disallowedReason}>{levelButton}</Tooltip>
) : (
<Dropdown
overlay={
<Menu>
{allowedLevels.map((listLevel) => (
<Menu.Item key={`${member.user.uuid}-level-${listLevel}`}>
<a href="#" onClick={generateHandleClick(listLevel)} data-test-level={listLevel}>
{listLevel === OrganizationMembershipLevel.Owner ? (
<>
<CrownFilled style={{ marginRight: '0.5rem' }} />
Transfer organization ownership
</>
) : listLevel > member.level ? (
<>
<UpOutlined style={{ marginRight: '0.5rem' }} />
Upgrade to {membershipLevelToName.get(listLevel)}
</>
) : (
<>
<DownOutlined style={{ marginRight: '0.5rem' }} />
Downgrade to {membershipLevelToName.get(listLevel)}
</>
)}
</a>
</Menu.Item>
))}
</Menu>
}
>
{levelButton}
</Dropdown>
)
}