import React from "react"; import { IOsQueryTable } from "interfaces/osquery_table"; import { osqueryTableNames } from "utilities/osquery_tables"; import DropdownWrapper from "components/forms/fields/DropdownWrapper"; import { CustomOptionType } from "components/forms/fields/DropdownWrapper/DropdownWrapper"; import FleetMarkdown from "components/FleetMarkdown"; import CustomLink from "components/CustomLink"; import Icon from "components/Icon/Icon"; import QueryTableColumns from "./QueryTableColumns"; import QueryTablePlatforms from "./QueryTablePlatforms"; import QueryTableExample from "./QueryTableExample"; import QueryTableNotes from "./QueryTableNotes"; import EventedTableTag from "./EventedTableTag"; interface IQuerySidePanel { selectedOsqueryTable: IOsQueryTable; onOsqueryTableSelect: (tableName: string) => void; onClose: () => void; } const baseClass = "query-side-panel"; const QuerySidePanel = ({ selectedOsqueryTable, onOsqueryTableSelect, onClose, }: IQuerySidePanel): JSX.Element => { const { name, description, platforms, columns, examples, notes, evented, } = selectedOsqueryTable; const mdmRequired = name === "managed_policies"; const onSelectTable = (option: CustomOptionType | null) => { if (!option) { return; } onOsqueryTableSelect(option.value); }; const renderTableSelect = () => { const tableNames: CustomOptionType[] = osqueryTableNames.map( (tableName: string) => ({ label: tableName, value: tableName, }) ); return ( ); }; return ( <>
{ if (e.key === "Enter" || e.key === " ") { onClose(); } }} >

Tables {osqueryTableNames.length}

{renderTableSelect()}
{evented && } {mdmRequired && ( Requires MDM )}
{examples && } {notes && } ); }; export default QuerySidePanel;