import React, { useState, useEffect, useCallback } from 'react'; import NLtoSQL from './NLtoSQL'; import TriggerSim from './TriggerSim'; import HybridSearch from './HybridSearch'; import Dashboard from './Dashboard'; const TABS = [ { id: 'nl2sql', label: 'Natural Language → SQL' }, { id: 'trigger', label: 'AI Trigger Simulator' }, { id: 'search', label: 'Hybrid Search' }, { id: 'dashboard', label: 'AI Dashboard' }, ]; export default function LiveDemo({ initialTab }) { const [activeTab, setActiveTab] = useState(initialTab || 'nl2sql'); // Listen for hash changes to switch tabs useEffect(() => { const handleHashChange = () => { const hash = window.location.hash.replace('#', ''); const parts = hash.split('/'); if (parts[0] === 'demo' && parts[1]) { const validTab = TABS.find(t => t.id === parts[1]); if (validTab) setActiveTab(validTab.id); } }; window.addEventListener('hashchange', handleHashChange); return () => window.removeEventListener('hashchange', handleHashChange); }, []); const switchTab = useCallback((tabId) => { setActiveTab(tabId); window.history.replaceState(null, '', `#demo/${tabId}`); }, []); return (
All demos powered by Google Gemini 2.0 Flash. Real AI responses, not hardcoded.