import { Download } from "lucide-react" import React from "react"; import { useObservabilityData } from "../hooks/useObservabilityData"; export const CommandAndQueryBar: React.FC = () => { const { logs, traces, metrics, searchQuery, setSearchQuery, showErrorsOnly, setShowErrorsOnly, selectedServices, toggleService, resetFilters, minDurationMs, setMinDurationMs, timeWindow, setTimeWindow, } = useObservabilityData(); const totalFilteredEvents = logs.length + traces.length + metrics.length; const exportNDJSON = () => { const records = [ ...traces.map((t) => JSON.stringify({ type: "traces", ...t })), ...logs.map((l) => JSON.stringify({ type: "logs", ...l })), ...metrics.map((m) => JSON.stringify({ type: "metrics", ...m })), ].join("\n"); const blob = new Blob([records], { type: "application/x-ndjson" }); const url = URL.createObjectURL(blob); const a = document.createElement("a"); a.href = url; a.download = `hyperscope-filtered-telemetry-${new Date().toISOString()}.ndjson`; a.click(); URL.revokeObjectURL(url); }; const hasActiveFilters = Boolean(searchQuery) || showErrorsOnly || selectedServices.size > 0 || minDurationMs > 0 || timeWindow !== "all"; return (