✨ Add tooltip for promotion and demotion of users
This commit is contained in:
@@ -10,6 +10,11 @@
|
|||||||
"user": "User"
|
"user": "User"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"tooltips": {
|
||||||
|
"deleteUser": "Delete user",
|
||||||
|
"demoteAdmin": "Demote administrator",
|
||||||
|
"promoteToAdmin": "Promote to administrator"
|
||||||
|
},
|
||||||
"modals": {
|
"modals": {
|
||||||
"delete": {
|
"delete": {
|
||||||
"title": "Delete user {{name}}",
|
"title": "Delete user {{name}}",
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import {
|
|||||||
Table,
|
Table,
|
||||||
Text,
|
Text,
|
||||||
Title,
|
Title,
|
||||||
|
Tooltip,
|
||||||
} from '@mantine/core';
|
} from '@mantine/core';
|
||||||
import { useDebouncedValue } from '@mantine/hooks';
|
import { useDebouncedValue } from '@mantine/hooks';
|
||||||
import { IconPlus, IconTrash, IconUserDown, IconUserUp } from '@tabler/icons-react';
|
import { IconPlus, IconTrash, IconUserDown, IconUserUp } from '@tabler/icons-react';
|
||||||
@@ -88,52 +89,59 @@ const ManageUsersPage = () => {
|
|||||||
<Group spacing="xs">
|
<Group spacing="xs">
|
||||||
<Avatar size="sm" />
|
<Avatar size="sm" />
|
||||||
<Text>{user.name}</Text>
|
<Text>{user.name}</Text>
|
||||||
{user.isOwner ? (
|
{user.isOwner && (
|
||||||
<Badge color="pink" size="sm">
|
<Badge color="pink" size="sm">
|
||||||
Owner
|
Owner
|
||||||
</Badge>
|
</Badge>
|
||||||
) : user.isAdmin ? (
|
)}
|
||||||
|
{user.isAdmin && (
|
||||||
<Badge color="red" size="sm">
|
<Badge color="red" size="sm">
|
||||||
Admin
|
Admin
|
||||||
</Badge>
|
</Badge>
|
||||||
) : null}
|
)}
|
||||||
</Group>
|
</Group>
|
||||||
<Group>
|
<Group>
|
||||||
{user.isAdmin ? (
|
{user.isAdmin ? (
|
||||||
|
<Tooltip label={t('tooltips.demoteAdmin')} withinPortal withArrow>
|
||||||
|
<ActionIcon
|
||||||
|
disabled={user.id === sessionData?.user?.id || user.isOwner}
|
||||||
|
onClick={() => {
|
||||||
|
openRoleChangeModal({
|
||||||
|
...user,
|
||||||
|
type: 'demote',
|
||||||
|
});
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<IconUserDown size="1rem" />
|
||||||
|
</ActionIcon>
|
||||||
|
</Tooltip>
|
||||||
|
) : (
|
||||||
|
<Tooltip label={t('tooltips.promoteToAdmin')} withinPortal withArrow>
|
||||||
|
<ActionIcon
|
||||||
|
onClick={() => {
|
||||||
|
openRoleChangeModal({
|
||||||
|
...user,
|
||||||
|
type: 'promote',
|
||||||
|
});
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<IconUserUp size="1rem" />
|
||||||
|
</ActionIcon>
|
||||||
|
</Tooltip>
|
||||||
|
)}
|
||||||
|
|
||||||
|
<Tooltip label={t('tooltips.deleteUser')} withinPortal withArrow>
|
||||||
<ActionIcon
|
<ActionIcon
|
||||||
disabled={user.id === sessionData?.user?.id || user.isOwner}
|
disabled={user.id === sessionData?.user?.id || user.isOwner}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
openRoleChangeModal({
|
openDeleteUserModal(user);
|
||||||
...user,
|
|
||||||
type: 'demote',
|
|
||||||
});
|
|
||||||
}}
|
}}
|
||||||
|
color="red"
|
||||||
|
variant="light"
|
||||||
>
|
>
|
||||||
<IconUserDown size="1rem" />
|
<IconTrash size="1rem" />
|
||||||
</ActionIcon>
|
</ActionIcon>
|
||||||
) : (
|
</Tooltip>
|
||||||
<ActionIcon
|
|
||||||
onClick={() => {
|
|
||||||
openRoleChangeModal({
|
|
||||||
...user,
|
|
||||||
type: 'promote',
|
|
||||||
});
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
<IconUserUp size="1rem" />
|
|
||||||
</ActionIcon>
|
|
||||||
)}
|
|
||||||
|
|
||||||
<ActionIcon
|
|
||||||
disabled={user.id === sessionData?.user?.id || user.isOwner}
|
|
||||||
onClick={() => {
|
|
||||||
openDeleteUserModal(user);
|
|
||||||
}}
|
|
||||||
color="red"
|
|
||||||
variant="light"
|
|
||||||
>
|
|
||||||
<IconTrash size="1rem" />
|
|
||||||
</ActionIcon>
|
|
||||||
</Group>
|
</Group>
|
||||||
</Group>
|
</Group>
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
Reference in New Issue
Block a user