feat: Adds menu item to resend outstanding invites (#3348)
* feat: Adds menu item to resend outstanding invites * i18n * snapshots
This commit is contained in:
@@ -8,6 +8,7 @@ import OverflowMenuButton from "~/components/ContextMenu/OverflowMenuButton";
|
||||
import Template from "~/components/ContextMenu/Template";
|
||||
import usePolicy from "~/hooks/usePolicy";
|
||||
import useStores from "~/hooks/useStores";
|
||||
import useToasts from "~/hooks/useToasts";
|
||||
|
||||
type Props = {
|
||||
user: User;
|
||||
@@ -20,6 +21,7 @@ function UserMenu({ user }: Props) {
|
||||
modal: true,
|
||||
});
|
||||
const can = usePolicy(user.id);
|
||||
const { showToast } = useToasts();
|
||||
|
||||
const handlePromote = React.useCallback(
|
||||
(ev: React.SyntheticEvent) => {
|
||||
@@ -113,6 +115,22 @@ function UserMenu({ user }: Props) {
|
||||
[users, user]
|
||||
);
|
||||
|
||||
const handleResendInvite = React.useCallback(
|
||||
async (ev: React.SyntheticEvent) => {
|
||||
ev.preventDefault();
|
||||
|
||||
try {
|
||||
await users.resendInvite(user);
|
||||
showToast(t(`Invite was resent to ${user.name}`), { type: "success" });
|
||||
} catch (err) {
|
||||
showToast(t(`An error occurred while sending the invite`), {
|
||||
type: "error",
|
||||
});
|
||||
}
|
||||
},
|
||||
[users, user, t, showToast]
|
||||
);
|
||||
|
||||
const handleActivate = React.useCallback(
|
||||
(ev: React.SyntheticEvent) => {
|
||||
ev.preventDefault();
|
||||
@@ -152,6 +170,12 @@ function UserMenu({ user }: Props) {
|
||||
onClick: handlePromote,
|
||||
visible: can.promote && user.role !== "admin",
|
||||
},
|
||||
{
|
||||
type: "button",
|
||||
title: t("Resend invite"),
|
||||
onClick: handleResendInvite,
|
||||
visible: can.resendInvite,
|
||||
},
|
||||
{
|
||||
type: "separator",
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user