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