more internal polish, resilient workers
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { Link } from "react-router-dom";
|
||||
import { Link, useSearchParams } from "react-router-dom";
|
||||
import { useEnforcements } from "@/hooks/useEvents";
|
||||
import { useEnforcementStream } from "@/hooks/useEnforcementStream";
|
||||
import { EnforcementStatus } from "@/api";
|
||||
@@ -44,14 +44,20 @@ const STATUS_OPTIONS = [
|
||||
];
|
||||
|
||||
export default function EnforcementsPage() {
|
||||
const [searchParams] = useSearchParams();
|
||||
|
||||
// Initialize filters from URL query parameters
|
||||
const [page, setPage] = useState(1);
|
||||
const pageSize = 50;
|
||||
const [searchFilters, setSearchFilters] = useState({
|
||||
rule: "",
|
||||
trigger: "",
|
||||
event: "",
|
||||
rule: searchParams.get("rule_ref") || "",
|
||||
trigger: searchParams.get("trigger_ref") || "",
|
||||
event: searchParams.get("event") || "",
|
||||
});
|
||||
const [selectedStatuses, setSelectedStatuses] = useState<string[]>(() => {
|
||||
const status = searchParams.get("status");
|
||||
return status ? [status] : [];
|
||||
});
|
||||
const [selectedStatuses, setSelectedStatuses] = useState<string[]>([]);
|
||||
|
||||
// Debounced filter state for API calls
|
||||
const [debouncedFilters, setDebouncedFilters] = useState(searchFilters);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { useState, useCallback } from "react";
|
||||
import { Link } from "react-router-dom";
|
||||
import { Link, useSearchParams } from "react-router-dom";
|
||||
import { useQueryClient } from "@tanstack/react-query";
|
||||
import { useEvents } from "@/hooks/useEvents";
|
||||
import {
|
||||
@@ -9,9 +9,12 @@ import {
|
||||
import type { EventSummary } from "@/api";
|
||||
|
||||
export default function EventsPage() {
|
||||
const [searchParams] = useSearchParams();
|
||||
const queryClient = useQueryClient();
|
||||
const [page, setPage] = useState(1);
|
||||
const [triggerFilter, setTriggerFilter] = useState<string>("");
|
||||
const [triggerFilter, setTriggerFilter] = useState<string>(
|
||||
searchParams.get("trigger_ref") || "",
|
||||
);
|
||||
const pageSize = 50;
|
||||
|
||||
// Set up WebSocket for real-time event updates with stable callback
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Link } from "react-router-dom";
|
||||
import { Link, useSearchParams } from "react-router-dom";
|
||||
import { useExecutions } from "@/hooks/useExecutions";
|
||||
import { useExecutionStream } from "@/hooks/useExecutionStream";
|
||||
import { ExecutionStatus } from "@/api";
|
||||
@@ -51,16 +51,22 @@ const STATUS_OPTIONS = [
|
||||
];
|
||||
|
||||
export default function ExecutionsPage() {
|
||||
const [searchParams] = useSearchParams();
|
||||
|
||||
// Initialize filters from URL query parameters
|
||||
const [page, setPage] = useState(1);
|
||||
const pageSize = 50;
|
||||
const [searchFilters, setSearchFilters] = useState({
|
||||
pack: "",
|
||||
rule: "",
|
||||
action: "",
|
||||
trigger: "",
|
||||
executor: "",
|
||||
pack: searchParams.get("pack_name") || "",
|
||||
rule: searchParams.get("rule_ref") || "",
|
||||
action: searchParams.get("action_ref") || "",
|
||||
trigger: searchParams.get("trigger_ref") || "",
|
||||
executor: searchParams.get("executor") || "",
|
||||
});
|
||||
const [selectedStatuses, setSelectedStatuses] = useState<string[]>(() => {
|
||||
const status = searchParams.get("status");
|
||||
return status ? [status] : [];
|
||||
});
|
||||
const [selectedStatuses, setSelectedStatuses] = useState<string[]>([]);
|
||||
|
||||
// Debounced filter state for API calls
|
||||
const [debouncedFilters, setDebouncedFilters] = useState(searchFilters);
|
||||
|
||||
Reference in New Issue
Block a user