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