feat: Adds menu item to resend outstanding invites (#3348)

* feat: Adds menu item to resend outstanding invites

* i18n

* snapshots
This commit is contained in:
Tom Moor
2022-04-09 11:34:27 -07:00
committed by GitHub
parent 75a868e5e8
commit 5c1888b0a4
6 changed files with 85 additions and 0 deletions

View File

@@ -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",
},