mirror of
https://github.com/i701/sarlink-portal.git
synced 2025-07-06 18:19:33 +00:00
38 lines
1.0 KiB
TypeScript
38 lines
1.0 KiB
TypeScript
"use client";
|
|
|
|
import { Loader2, Trash2 } from "lucide-react";
|
|
import { useRouter } from "next/navigation";
|
|
import React from "react";
|
|
import { toast } from "sonner";
|
|
import { cancelTopup } from "@/actions/payment";
|
|
import { tryCatch } from "@/utils/tryCatch";
|
|
import { Button } from "../ui/button";
|
|
|
|
export default function CancelTopupButton({
|
|
topupId,
|
|
}: { topupId: string }) {
|
|
const router = useRouter();
|
|
const [loading, setLoading] = React.useState(false);
|
|
return (
|
|
<Button
|
|
onClick={async () => {
|
|
setLoading(true);
|
|
const [error, x] = await tryCatch(cancelTopup({ id: topupId }));
|
|
console.log(x);
|
|
if (error) {
|
|
toast.error(error.message);
|
|
setLoading(false);
|
|
} else {
|
|
toast.success("Topup cancelled successfully!")
|
|
router.replace("/top-ups");
|
|
}
|
|
}}
|
|
disabled={loading}
|
|
variant={"destructive"}
|
|
>
|
|
Cancel Topup
|
|
{loading ? <Loader2 className="animate-spin" /> : <Trash2 />}
|
|
</Button>
|
|
);
|
|
}
|