fix: waf page

This commit is contained in:
naiba
2024-11-30 21:31:55 +08:00
parent 7463bbe3a6
commit 3dc6da8ea9
9 changed files with 52 additions and 23 deletions
+21 -7
View File
@@ -48,7 +48,7 @@ const settingFormSchema = z.object({
});
export default function SettingsPage() {
const { t , i18n} = useTranslation();
const { t, i18n } = useTranslation();
const [config, setConfig] = useState<ModelConfig>();
const [error, setError] = useState<Error>();
@@ -57,7 +57,7 @@ export default function SettingsPage() {
toast(t("Error"), {
description: t("Results.ErrorFetchingResource", { error: error.message }),
});
// eslint-disable-next-line react-hooks/exhaustive-deps
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [error]);
useEffect(() => {
@@ -106,9 +106,9 @@ export default function SettingsPage() {
return;
} finally {
toast(t("Success"));
if (values.language!= "auto"){
if (values.language != "auto") {
i18n.changeLanguage(values.language)
}else{
} else {
i18n.changeLanguage(i18n.services.languageDetector.detect());
}
}
@@ -204,7 +204,7 @@ export default function SettingsPage() {
render={({ field }) => (
<FormItem>
<FormLabel>
{t("CustomPublicDNSNameserversforDDNS")+" " + t("SeparateWithComma")}
{t("CustomPublicDNSNameserversforDDNS") + " " + t("SeparateWithComma")}
</FormLabel>
<FormControl>
<Input {...field} />
@@ -220,7 +220,21 @@ export default function SettingsPage() {
<FormItem>
<FormLabel>{t("RealIPHeader")}</FormLabel>
<FormControl>
<Input placeholder="NZ::Use-Peer-IP" {...field} />
<div className="flex items-center">
<Input disabled={field.value == 'NZ::Use-Peer-IP'} className="w-1/2" placeholder="CF-Connecting-IP" {...field} />
<Checkbox checked={field.value == 'NZ::Use-Peer-IP'} className="ml-2" onCheckedChange={(checked) => {
if (checked) {
field.disabled = true;
form.setValue("real_ip_header", "NZ::Use-Peer-IP");
} else {
field.disabled = false;
form.setValue("real_ip_header", "");
}
}} />
<FormLabel className="font-normal ml-2">
{t("UseDirectConnectingIP")}
</FormLabel>
</div>
</FormControl>
<FormMessage />
</FormItem>
@@ -260,7 +274,7 @@ export default function SettingsPage() {
name="ignored_ip_notification"
render={({ field }) => (
<FormItem>
<FormLabel>{t("SpecificServers")+" " + t("SeparateWithComma")}</FormLabel>
<FormLabel>{t("SpecificServers") + " " + t("SeparateWithComma")}</FormLabel>
<FormControl>
<Input placeholder="1,2,3" {...field} />
</FormControl>
+7 -7
View File
@@ -14,7 +14,7 @@ import { useEffect, useMemo } from "react";
import { ActionButtonGroup } from "@/components/action-button-group";
import { HeaderButtonGroup } from "@/components/header-button-group";
import { toast } from "sonner";
import { ModelWAF, wafBlockReasons } from "@/types";
import { ModelWAFApiMock, wafBlockReasons } from "@/types";
import { deleteWAF } from "@/api/waf";
import { ip16Str } from "@/lib/utils";
import { SettingsTab } from "@/components/settings-tab";
@@ -23,7 +23,7 @@ import { useTranslation } from "react-i18next";
export default function WAFPage() {
const { t } = useTranslation();
const { data, mutate, error, isLoading } = useSWR<ModelWAF[]>("/api/v1/waf", swrFetcher);
const { data, mutate, error, isLoading } = useSWR<ModelWAFApiMock[]>("/api/v1/waf", swrFetcher);
useEffect(() => {
if (error)
@@ -33,7 +33,7 @@ export default function WAFPage() {
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [error]);
const columns: ColumnDef<ModelWAF>[] = [
const columns: ColumnDef<ModelWAFApiMock>[] = [
{
id: "select",
header: ({ table }) => (
@@ -59,7 +59,7 @@ export default function WAFPage() {
{
header: "IP",
accessorKey: "ip",
accessorFn: (row) => ip16Str(row.ip ?? []),
accessorFn: (row) => ip16Str(row.ip ?? ""),
},
{
header: t("Count"),
@@ -78,7 +78,7 @@ export default function WAFPage() {
accessorFn: (row) => row.last_block_timestamp,
cell: ({ row }) => {
const s = row.original;
const date = new Date(s.last_block_timestamp || 0);
const date = new Date((s.last_block_timestamp || 0)*1000);
return <span>{date.toISOString()}</span>;
},
},
@@ -92,7 +92,7 @@ export default function WAFPage() {
className="flex gap-2"
delete={{
fn: deleteWAF,
id: ip16Str(s.ip ?? []),
id: ip16Str(s.ip ?? ""),
mutate: mutate,
}}
>
@@ -123,7 +123,7 @@ export default function WAFPage() {
className="flex-2 flex gap-2 ml-auto"
delete={{
fn: deleteWAF,
id: selectedRows.map((r) => ip16Str(r.original.ip ?? [])),
id: selectedRows.map((r) => ip16Str(r.original.ip ?? "")),
mutate: mutate,
}}
>