import { useDeferredValue, useMemo, useState } from "react"; import { useQuery } from "@tanstack/react-query"; import { Link } from "react-router-dom"; import { listOperations } from "../../entities/operation/api"; import { PageSection } from "../../shared/ui/page-section"; export function OperationListPage() { const [searchTerm, setSearchTerm] = useState(""); const deferredSearchTerm = useDeferredValue(searchTerm); const operationsQuery = useQuery({ queryKey: ["operations"], queryFn: listOperations, }); const filteredItems = useMemo(() => { const items = operationsQuery.data?.items ?? []; const normalizedSearchTerm = deferredSearchTerm.trim().toLowerCase(); if (!normalizedSearchTerm) { return items; } return items.filter((item) => `${item.name} ${item.display_name} ${item.protocol} ${item.status}` .toLowerCase() .includes(normalizedSearchTerm), ); }, [deferredSearchTerm, operationsQuery.data?.items]); return (
Loading operations...
: null} {operationsQuery.data ? ({item.name}