gitscope
← marzneshin / v0.3.0-alpha11 / 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 { setSelectedExpirationMethodTab, defaultExpirationMethodTab } = useExpirationMethodTabs({ entity })
28
29    return (
30        <>
31            <FormLabel>
32                {t('page.users.expire_method')}
33            </FormLabel>
34            <Tabs defaultValue={defaultExpirationMethodTab} onValueChange={setSelectedExpirationMethodTab} className="mt-2 w-full">
35                <TabsList className="flex flex-row items-center p-1 w-full rounded-md bg-accent">
36                    <TabsTrigger
37                        className="w-full"
38                        value="determined">
39                        {t('page.users.determined_expire')}
40                    </TabsTrigger>
41                    <TabsTrigger
42                        className="w-full"
43                        value="onhold">
44                        {t('page.users.onhold_expire')}
45                    </TabsTrigger>
46                    <TabsTrigger
47                        className="w-full"
48                        value="unlimited">
49                        {t('page.users.unlimited')}
50                    </TabsTrigger>
51                </TabsList>
52                <TabsContent value="determined">
53                    <ExpireDateField />
54                </TabsContent>
55                <TabsContent value="onhold">
56                    <OnHoldExpireDurationField />
57                    <OnHoldTimeoutField />
58                </TabsContent>
59            </Tabs>
60        </>
61    )
62}