gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/features/hosts/dialogs/mutation/fields/security.tsx · v0.3.0-alpha9
Source
1 7428e12 Mrdn 2y ago
2 7428e12 Mrdn 2y ago import {
3 7428e12 Mrdn 2y ago FormControl,
4 7428e12 Mrdn 2y ago FormField,
5 7428e12 Mrdn 2y ago FormItem,
6 7428e12 Mrdn 2y ago FormLabel,
7 7428e12 Mrdn 2y ago FormMessage,
8 7428e12 Mrdn 2y ago Select,
9 7428e12 Mrdn 2y ago SelectContent,
10 7428e12 Mrdn 2y ago SelectItem,
11 7428e12 Mrdn 2y ago SelectTrigger,
12 7428e12 Mrdn 2y ago SelectValue
13 7428e12 Mrdn 2y ago } from "@marzneshin/components";
14 7428e12 Mrdn 2y ago import { useEffect, useState } from "react";
15 7428e12 Mrdn 2y ago import { useFormContext } from "react-hook-form";
16 7428e12 Mrdn 2y ago import { useTranslation } from "react-i18next";
17 7428e12 Mrdn 2y ago import { AllowInsecureField, AlpnField, FingerprintField, SniField } from ".";
18 7428e12 Mrdn 2y ago
19 7428e12 Mrdn 2y ago export const SecurityFields = () => {
20 7428e12 Mrdn 2y ago const { t } = useTranslation()
21 7428e12 Mrdn 2y ago const form = useFormContext()
22 7428e12 Mrdn 2y ago const security = form.watch().security
23 7428e12 Mrdn 2y ago
24 7428e12 Mrdn 2y ago const [extraSecurity, setExtraSecurity] = useState<boolean>(["tls", "inbound_default"].includes(security))
25 7428e12 Mrdn 2y ago useEffect(() => {
26 7428e12 Mrdn 2y ago setExtraSecurity(["tls", "inbound_default"].includes(security))
27 7428e12 Mrdn 2y ago }, [security, setExtraSecurity])
28 7428e12 Mrdn 2y ago return (
29 7428e12 Mrdn 2y ago <>
30 7428e12 Mrdn 2y ago <FormField
31 7428e12 Mrdn 2y ago control={form.control}
32 7428e12 Mrdn 2y ago name="security"
33 7428e12 Mrdn 2y ago render={({ field }) => (
34 7428e12 Mrdn 2y ago <FormItem>
35 7428e12 Mrdn 2y ago <FormLabel>{t('security')}</FormLabel>
36 7428e12 Mrdn 2y ago <Select onValueChange={field.onChange} defaultValue={field.value}>
37 7428e12 Mrdn 2y ago <FormControl>
38 7428e12 Mrdn 2y ago <SelectTrigger>
39 7428e12 Mrdn 2y ago <SelectValue placeholder="Select a verified email to display" />
40 7428e12 Mrdn 2y ago </SelectTrigger>
41 7428e12 Mrdn 2y ago </FormControl>
42 7428e12 Mrdn 2y ago <SelectContent>
43 7428e12 Mrdn 2y ago <SelectItem value="none">None</SelectItem>
44 7428e12 Mrdn 2y ago <SelectItem value="tls">TLS</SelectItem>
45 7428e12 Mrdn 2y ago <SelectItem value="inbound_default">Inbound Default</SelectItem>
46 7428e12 Mrdn 2y ago </SelectContent>
47 7428e12 Mrdn 2y ago </Select>
48 7428e12 Mrdn 2y ago <FormMessage />
49 7428e12 Mrdn 2y ago </FormItem>
50 7428e12 Mrdn 2y ago )}
51 7428e12 Mrdn 2y ago />
52 7428e12 Mrdn 2y ago {extraSecurity &&
53 7428e12 Mrdn 2y ago <>
54 7428e12 Mrdn 2y ago <SniField />
55 7428e12 Mrdn 2y ago <AlpnField />
56 7428e12 Mrdn 2y ago <FingerprintField />
57 7428e12 Mrdn 2y ago <AllowInsecureField />
58 7428e12 Mrdn 2y ago </>
59 7428e12 Mrdn 2y ago }
60 7428e12 Mrdn 2y ago </>
61 7428e12 Mrdn 2y ago )
62 7428e12 Mrdn 2y ago }