gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/features/users/components/dialogs/mutation/sections/expiration-method/index.tsx · v0.5.0
Source
1 5875753 Mrdn 2y ago import { FC } from "react";
2 5875753 Mrdn 2y ago import {
3 5875753 Mrdn 2y ago Tabs,
4 5875753 Mrdn 2y ago TabsTrigger,
5 5875753 Mrdn 2y ago TabsContent,
6 5875753 Mrdn 2y ago FormLabel
7 5875753 Mrdn 2y ago } from '@marzneshin/components';
8 d377c4c Dawsh 2y ago import type {
9 5875753 Mrdn 2y ago UserMutationType,
10 5875753 Mrdn 2y ago } from "@marzneshin/features/users";
11 5875753 Mrdn 2y ago import {
12 5875753 Mrdn 2y ago ExpireDateField,
13 d377c4c Dawsh 2y ago ActivationDeadlineField,
14 d377c4c Dawsh 2y ago UsageDurationField,
15 f035f9d Mardin 2y ago } from "@marzneshin/features/users/components/dialogs/mutation/fields";
16 5875753 Mrdn 2y ago import { TabsList } from "@radix-ui/react-tabs";
17 5875753 Mrdn 2y ago import { useTranslation } from "react-i18next";
18 ce27a57 Mardin 2y ago import { useExpirationMethodTabs } from "./use-expiration-method-tabs";
19 5875753 Mrdn 2y ago
20 5875753 Mrdn 2y ago interface ExpirationMethodProps {
21 5875753 Mrdn 2y ago entity: UserMutationType | null
22 5875753 Mrdn 2y ago }
23 5875753 Mrdn 2y ago
24 5875753 Mrdn 2y ago export const ExpirationMethodFields: FC<ExpirationMethodProps> = ({ entity }) => {
25 f035f9d Mardin 2y ago const { t } = useTranslation();
26 88321ab Mardin 2y ago const {
27 d42c6e6 Mardin 2y ago handleTabChange,
28 d42c6e6 Mardin 2y ago selectedExpirationMethodTab
29 d42c6e6 Mardin 2y ago } = useExpirationMethodTabs(entity);
30 5875753 Mrdn 2y ago
31 5875753 Mrdn 2y ago return (
32 5875753 Mrdn 2y ago <>
33 f035f9d Mardin 2y ago <FormLabel className="text-md">
34 5875753 Mrdn 2y ago {t('page.users.expire_method')}
35 5875753 Mrdn 2y ago </FormLabel>
36 f035f9d Mardin 2y ago <Tabs
37 d42c6e6 Mardin 2y ago defaultValue={selectedExpirationMethodTab}
38 f035f9d Mardin 2y ago onValueChange={handleTabChange}
39 d377c4c Dawsh 2y ago className="w-full"
40 88321ab Mardin 2y ago >
41 5875753 Mrdn 2y ago <TabsList className="flex flex-row items-center p-1 w-full rounded-md bg-accent">
42 5875753 Mrdn 2y ago <TabsTrigger
43 5875753 Mrdn 2y ago className="w-full"
44 d377c4c Dawsh 2y ago value="fixed_date">
45 d377c4c Dawsh 2y ago {t('page.users.fixed_date')}
46 5875753 Mrdn 2y ago </TabsTrigger>
47 5875753 Mrdn 2y ago <TabsTrigger
48 5875753 Mrdn 2y ago className="w-full"
49 d377c4c Dawsh 2y ago value="start_on_first_use">
50 d377c4c Dawsh 2y ago {t('page.users.on_first_use')}
51 5875753 Mrdn 2y ago </TabsTrigger>
52 5875753 Mrdn 2y ago <TabsTrigger
53 5875753 Mrdn 2y ago className="w-full"
54 d377c4c Dawsh 2y ago value="never">
55 d377c4c Dawsh 2y ago {t('page.users.never')}
56 5875753 Mrdn 2y ago </TabsTrigger>
57 5875753 Mrdn 2y ago </TabsList>
58 d377c4c Dawsh 2y ago <TabsContent value="fixed_date">
59 5875753 Mrdn 2y ago <ExpireDateField />
60 5875753 Mrdn 2y ago </TabsContent>
61 d377c4c Dawsh 2y ago <TabsContent value="start_on_first_use">
62 d377c4c Dawsh 2y ago <UsageDurationField />
63 d377c4c Dawsh 2y ago <ActivationDeadlineField />
64 5875753 Mrdn 2y ago </TabsContent>
65 5875753 Mrdn 2y ago </Tabs>
66 5875753 Mrdn 2y ago </>
67 f035f9d Mardin 2y ago );
68 f035f9d Mardin 2y ago };