diff --git a/frontend/app/components/shared/SessionsTabOverview/SessionsTabOverview.tsx b/frontend/app/components/shared/SessionsTabOverview/SessionsTabOverview.tsx
index 776761381..bf7974b2c 100644
--- a/frontend/app/components/shared/SessionsTabOverview/SessionsTabOverview.tsx
+++ b/frontend/app/components/shared/SessionsTabOverview/SessionsTabOverview.tsx
@@ -1,41 +1,65 @@
+import { Input } from 'antd';
import React from 'react';
-import SessionList from './components/SessionList';
-import SessionHeader from './components/SessionHeader';
-import NotesList from './components/Notes/NoteList';
-import { connect, DefaultRootState } from 'react-redux';
+import { connect } from 'react-redux';
+
+import { useStore } from 'App/mstore';
+
import LatestSessionsMessage from './components/LatestSessionsMessage';
+import NotesList from './components/Notes/NoteList';
+import SessionHeader from './components/SessionHeader';
+import SessionList from './components/SessionList';
function SessionsTabOverview({
- activeTab,
- members,
- sites,
- siteId
- }: {
+ activeTab,
+ appliedFilter,
+ members,
+}: {
activeTab: string;
members: object[];
sites: object[];
siteId: string;
+ appliedFilter: any;
}) {
- const activeSite: any = sites.find((s: any) => s.id === siteId);
+ const [query, setQuery] = React.useState('');
+ const { aiFiltersStore } = useStore();
+ const handleKeyDown = (event: any) => {
+ if (event.key === 'Enter') {
+ fetchResults();
+ }
+ };
+ const fetchResults = () => {
+ void aiFiltersStore.omniSearch(query, appliedFilter.toData());
+ };
+
+ const testingKey = localStorage.getItem('__mauricio_testing_access') === 'true';
return (
-
+
+ {testingKey ? (
+
setQuery(e.target.value)}
+ className={'mb-2'}
+ placeholder={'ask session ai'}
+ />
+ ) : null}
-
+
- {activeTab !== 'notes' ?
:
-
}
+ {activeTab !== 'notes' ? (
+
+ ) : (
+
+ )}
);
}
-export default connect(
- (state: any) => ({
- // @ts-ignore
- activeTab: state.getIn(['search', 'activeTab', 'type']),
- // @ts-ignore
- members: state.getIn(['members', 'list']),
- siteId: state.getIn(['site', 'siteId']),
- sites: state.getIn(['site', 'list'])
- })
-)(SessionsTabOverview);
+export default connect((state: any) => ({
+ // @ts-ignore
+ activeTab: state.getIn(['search', 'activeTab', 'type']),
+ // @ts-ignore
+ members: state.getIn(['members', 'list']),
+ appliedFilter: state.getIn(['search', 'instance']),
+}))(SessionsTabOverview);
diff --git a/frontend/app/mstore/aiFiltersStore.ts b/frontend/app/mstore/aiFiltersStore.ts
index bd3833129..be42c0f7d 100644
--- a/frontend/app/mstore/aiFiltersStore.ts
+++ b/frontend/app/mstore/aiFiltersStore.ts
@@ -30,6 +30,11 @@ export default class AiFiltersStore {
console.log(r)
}
+ omniSearch = async (query: string, filters: Record
) => {
+ const r = await aiService.omniSearch(query, filters);
+ console.log(r)
+ }
+
getCardFilters = async (query: string, chartType: string): Promise => {
this.isLoading = true;
try {
diff --git a/frontend/app/services/AiService.ts b/frontend/app/services/AiService.ts
index befdb49a2..0d4b2abaf 100644
--- a/frontend/app/services/AiService.ts
+++ b/frontend/app/services/AiService.ts
@@ -41,6 +41,16 @@ export default class AiService extends BaseService {
return data;
}
+ async omniSearch(query: string, filters: Record): Promise> {
+ const r = await this.client.post('/intelligent/ask-or/charts', {
+ ...filters,
+ question: query,
+ metricType: 'omnisearch',
+ });
+ const { data } = await r.json();
+ return data;
+ }
+
async getCardData(query: string, chartData: Record): Promise> {
const r = await this.client.post('/intelligent/ask-or/charts', {
...chartData,