gitscope
← marzneshin / v0.3.0 / dashboard/src/features/users/dialogs/mutation/sections/expiration-method.tsx
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/features/users/dialogs/mutation/sections/expiration-method.tsx · TypeScript
Blame Raw
 1import { FC } from "react";
 2import {
 3    Tabs,
 4    TabsTrigger,
 5    TabsContent,
 6    FormLabel
 7} from '@marzneshin/components';
 8import {
 9    UserMutationType,
10} from "@marzneshin/features/users";
11import {
12    ExpireDateField,
13    OnHoldTimeoutField,
14    OnHoldExpireDurationField,
15} from "../fields";
16import { TabsList } from "@radix-ui/react-tabs";
17import { useTranslation } from "react-i18next";
18import { useExpirationMethodTabs } from "./use-expiration-method-tabs";
19
20interface ExpirationMethodProps {
21    entity: UserMutationType | null
22}
23
24
25export const ExpirationMethodFields: FC<ExpirationMethodProps> = ({ entity }) => {
26    const { t } = useTranslation()
27    const {
28        setSelectedExpirationMethodTab,
29        defaultExpirationMethodTab
30    } = useExpirationMethodTabs({ entity })
31
32    return (
33        <>
34            <FormLabel>
35                {t('page.users.expire_method')}
36            </FormLabel>
37            <Tabs 
38                defaultValue={defaultExpirationMethodTab} 
39                onValueChange={setSelectedExpirationMethodTab} 
40                className="mt-2 w-full"
41            >
42                <TabsList className="flex flex-row items-center p-1 w-full rounded-md bg-accent">
43                    <TabsTrigger
44                        className="w-full"
45                        value="determined">
46                        {t('page.users.determined_expire')}
47                    </TabsTrigger>
48                    <TabsTrigger
49                        className="w-full"
50                        value="onhold">
51                        {t('page.users.onhold_expire')}
52                    </TabsTrigger>
53                    <TabsTrigger
54                        className="w-full"
55                        value="unlimited">
56                        {t('page.users.unlimited')}
57                    </TabsTrigger>
58                </TabsList>
59                <TabsContent value="determined">
60                    <ExpireDateField />
61                </TabsContent>
62                <TabsContent value="onhold">
63                    <OnHoldExpireDurationField />
64                    <OnHoldTimeoutField />
65                </TabsContent>
66            </Tabs>
67        </>
68    )
69}