← marzneshin
/
v0.3.0
/
dashboard/src/features/users/dialogs/mutation/sections/expiration-method.tsx
https://dev.kronoz.win/r/marzneshin.git
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}