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