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