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