import React, { useMemo } from "react"; import AnimatedSVG, { ICONS } from 'Shared/AnimatedSVG/AnimatedSVG'; import { observer } from 'mobx-react-lite'; import { useStore } from 'App/mstore'; import SavedSearch from '../SavedSearch/SavedSearch'; import { Button } from 'antd'; import AiSessionSearchField from 'Shared/SessionFilters/AiSessionSearchField'; function SearchActions() { const { aiFiltersStore, searchStore, customFieldStore, userStore } = useStore(); const appliedFilter = searchStore.instance; const activeTab = searchStore.activeTab; const isEnterprise = userStore.isEnterprise; const metaLoading = customFieldStore.isLoading; const hasEvents = appliedFilter.filters.filter((i: any) => i.isEvent).length > 0; const hasFilters = appliedFilter.filters.filter((i: any) => !i.isEvent).length > 0; const savedSearch = searchStore.savedSearch; const hasSavedSearch = savedSearch && savedSearch.exists(); const hasSearch = hasFilters || hasSavedSearch; const title = useMemo(() => { if (activeTab && activeTab.type === 'bookmarks') { return isEnterprise ? 'Vault' : 'Bookmarks'; } return 'Sessions'; }, [activeTab?.type, isEnterprise]); // @ts-ignore const originStr = window.env.ORIGIN || window.location.origin; const isSaas = /app\.openreplay\.com/.test(originStr); const showAiField = isSaas && activeTab.type === 'sessions'; const showPanel = hasEvents || hasFilters || aiFiltersStore.isLoading; return !metaLoading ? (

{title}

{isSaas && showAiField ? : null}
{showPanel ? ( <> {aiFiltersStore.isLoading ? (
Translating your query into search steps...
) : null} ) : null}
) : null; } export default observer(SearchActions);