gitscope
← marzneshin / v0.6.1 / dashboard/src/modules/users/components/dialogs/settings/user-info/subscription-actions.tsx
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/modules/users/components/dialogs/settings/user-info/subscription-actions.tsx · TypeScript
Blame Raw
 1import { Button, HStack } from "@marzneshin/components";
 2import { useTranslation } from "react-i18next";
 3import { getSubscriptionLink } from "@marzneshin/utils";
 4import { useUserSubscriptionRevokeCmd } from "@marzneshin/modules/users";
 5import { CopyToClipboardButton } from "@marzneshin/components";
 6import { SquareCode } from "lucide-react";
 7import type { QRCodeProps } from "./qrcode";
 8import type { FC } from 'react';
 9
10export const SubscriptionActions: FC<QRCodeProps> = ({ entity }) => {
11    const subscribeQrLink = getSubscriptionLink(entity.subscription_url);
12    const { mutate: revokeSubscription } = useUserSubscriptionRevokeCmd();
13    const { t } = useTranslation();
14    return (
15        <HStack className="w-full items-center my-2">
16            <CopyToClipboardButton
17                text={subscribeQrLink}
18                successMessage={t("page.users.settings.subscription_link.copied")}
19                copyLabel={t("page.users.settings.subscription_link.copy")}
20                errorLabel={t("page.users.settings.subscription_link.error")}
21                copyIcon={SquareCode}
22                className="w-1/2"
23            />
24            <Button variant="destructive" className="w-1/2" onClick={() => revokeSubscription(entity)}>
25                {t("page.users.revoke_subscription")}
26            </Button>
27        </HStack>
28    );
29};