import { useState, useEffect } from 'react'; import { X, Trash2, Play, Bookmark, Clock } from 'lucide-react'; import type { SavedQuery } from './types-v3'; import { savedQueryStorage } from './types-v3'; import { ENGINE_META } from './types-v3'; import i18n from '@/i18n'; interface Props { visible: boolean; onClose: () => void; onSelect: (item: SavedQuery) => void; } // 已保存查询面板(localStorage)// Logan.Li export function SavedQueriesPanel({ visible, onClose, onSelect }: Props) { const [items, setItems] = useState([]); useEffect(() => { // eslint-disable-next-line react-hooks/set-state-in-effect if (visible) setItems(savedQueryStorage.getAll()); }, [visible]); if (!visible) return null; return ( <>
{i18n.t('monitor.logPanel.savedQueries')} {items.length}
{items.length === 0 ? (

{i18n.t('monitor.savedqueriespan.s9c8dc62b')}

) : items.map((item) => (

{item.name}

{ENGINE_META[item.engine]?.name} · {item.timeRangeLabel}

{item.query}

{new Date(item.createdAt).toLocaleString()}

))}
); }