Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ import {
BoxArchive,
ChevronRight,
CircleXmark,
Copy,
EnvelopeArrowRight,
InvoiceDollar,
LoadingSpinner,
Expand Down Expand Up @@ -290,126 +291,145 @@ function PageControls({ partner }: { partner: EnrolledPartnerProps }) {
openPopover={isOpen}
setOpenPopover={setIsOpen}
content={
<div className="grid w-full grid-cols-1 gap-px p-2 md:w-48">
<div className="w-full md:w-48">
{partner.status === "invited" ? (
<MenuItem
icon={isDeletingInvite ? LoadingSpinner : Trash}
onClick={async () => {
if (partner.status !== "invited" || !workspaceId) {
return;
}
if (
!window.confirm(
"Are you sure you want to delete this invite? This action cannot be undone.",
)
) {
return;
}

await deleteInvite({
workspaceId,
partnerId: partner.id,
});
}}
variant="danger"
>
Delete invite
</MenuItem>
) : (
<>
<MenuItem
as={Link}
href={`/${workspaceSlug}/program/messages/${partner.id}`}
target="_blank"
icon={Msgs}
onClick={() => setIsOpen(false)}
className="md:hidden"
>
Message
</MenuItem>
<div className="grid gap-px p-2">
<MenuItem
icon={InvoiceDollar}
onClick={() => {
setCreateCommissionSheetOpen(true);
setIsOpen(false);
}}
className="md:hidden"
>
Create commission
</MenuItem>
<MenuItem
icon={Refresh2}
onClick={() => {
setClawbackSheetOpen(true);
setIsOpen(false);
}}
>
Create clawback
</MenuItem>
<MenuItem
icon={PenWriting}
onClick={() => {
setShowPartnerAdvancedSettingsModal(true);
setIsOpen(false);
icon={isDeletingInvite ? LoadingSpinner : Trash}
onClick={async () => {
if (partner.status !== "invited" || !workspaceId) {
return;
}
if (
!window.confirm(
"Are you sure you want to delete this invite? This action cannot be undone.",
)
) {
return;
}

await deleteInvite({
workspaceId,
partnerId: partner.id,
});
}}
variant="danger"
>
Advanced settings
Delete invite
</MenuItem>
{!["banned", "deactivated"].includes(partner.status) && (
</div>
) : (
<>
<div className="grid gap-px p-2">
<MenuItem
icon={BoxArchive}
onClick={() => {
setShowArchivePartnerModal(true);
setIsOpen(false);
}}
as={Link}
href={`/${workspaceSlug}/program/messages/${partner.id}`}
target="_blank"
icon={Msgs}
onClick={() => setIsOpen(false)}
className="md:hidden"
>
{partner.status === "archived" ? "Unarchive" : "Archive"}{" "}
partner
Message
</MenuItem>
)}
{partner.status === "deactivated" ? (
<MenuItem
icon={LockOpen}
icon={InvoiceDollar}
onClick={() => {
setShowReactivatePartnerModal(true);
setCreateCommissionSheetOpen(true);
setIsOpen(false);
}}
className="md:hidden"
>
Reactivate partner
Create commission
</MenuItem>
) : partner.status !== "banned" ? (
<MenuItem
icon={CircleXmark}
icon={Refresh2}
onClick={() => {
setShowDeactivatePartnerModal(true);
setClawbackSheetOpen(true);
setIsOpen(false);
}}
>
Deactivate partner
Create clawback
</MenuItem>
) : null}
{partner.status === "banned" ? (
<MenuItem
icon={UserCheck}
icon={PenWriting}
onClick={() => {
setShowUnbanPartnerModal(true);
setShowPartnerAdvancedSettingsModal(true);
setIsOpen(false);
}}
>
Unban partner
Advanced settings
</MenuItem>
) : (
<MenuItem
icon={UserDelete}
variant="danger"
icon={Copy}
onClick={() => {
setShowBanPartnerModal(true);
navigator.clipboard.writeText(partner.id);
toast.success("Partner ID copied!");
setIsOpen(false);
}}
>
Ban partner
Copy Partner ID
</MenuItem>
)}
</div>
<div className="border-t border-neutral-200" />
<div className="grid gap-px p-2">
{!["banned", "deactivated"].includes(partner.status) && (
<MenuItem
icon={BoxArchive}
onClick={() => {
setShowArchivePartnerModal(true);
setIsOpen(false);
}}
>
{partner.status === "archived"
? "Unarchive"
: "Archive"}{" "}
partner
</MenuItem>
)}
{partner.status === "deactivated" ? (
<MenuItem
icon={LockOpen}
onClick={() => {
setShowReactivatePartnerModal(true);
setIsOpen(false);
}}
>
Reactivate partner
</MenuItem>
) : partner.status !== "banned" ? (
<MenuItem
icon={CircleXmark}
onClick={() => {
setShowDeactivatePartnerModal(true);
setIsOpen(false);
}}
>
Deactivate partner
</MenuItem>
) : null}
{partner.status === "banned" ? (
<MenuItem
icon={UserCheck}
onClick={() => {
setShowUnbanPartnerModal(true);
setIsOpen(false);
}}
>
Unban partner
</MenuItem>
) : (
<MenuItem
icon={UserDelete}
variant="danger"
onClick={() => {
setShowBanPartnerModal(true);
setIsOpen(false);
}}
>
Ban partner
</MenuItem>
)}
</div>
</>
)}
</div>
Expand Down