feat ui: omnisearch testing

This commit is contained in:
nick-delirium 2024-04-26 17:37:17 +02:00
parent 336084a9f3
commit 3e0ced0237
No known key found for this signature in database
GPG key ID: 93ABD695DF5FDBA0
3 changed files with 63 additions and 24 deletions

View file

@ -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 (
<div className='widget-wrapper'>
<div className="widget-wrapper">
{testingKey ? (
<Input
value={query}
onKeyDown={handleKeyDown}
onChange={(e) => setQuery(e.target.value)}
className={'mb-2'}
placeholder={'ask session ai'}
/>
) : null}
<SessionHeader />
<div className='border-b' />
<div className="border-b" />
<LatestSessionsMessage />
{activeTab !== 'notes' ? <SessionList /> :
<NotesList members={members} />}
{activeTab !== 'notes' ? (
<SessionList />
) : (
<NotesList members={members} />
)}
</div>
);
}
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);

View file

@ -30,6 +30,11 @@ export default class AiFiltersStore {
console.log(r)
}
omniSearch = async (query: string, filters: Record<any, any>) => {
const r = await aiService.omniSearch(query, filters);
console.log(r)
}
getCardFilters = async (query: string, chartType: string): Promise<any> => {
this.isLoading = true;
try {

View file

@ -41,6 +41,16 @@ export default class AiService extends BaseService {
return data;
}
async omniSearch(query: string, filters: Record<any, any>): Promise<Record<string, any>> {
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<string, any>): Promise<Record<string, any>> {
const r = await this.client.post('/intelligent/ask-or/charts', {
...chartData,