openreplay/frontend/app/components/shared/SavedSearch/SavedSearch.tsx
Andrey Babushkin fd5c0c9747
Add lokalisation (#3092)
* applied eslint

* add locales and lint the project

* removed error boundary

* updated locales

* fix min files

* fix locales
2025-03-06 17:43:15 +01:00

76 lines
2 KiB
TypeScript

import React, { useState } from 'react';
import { Button, Tooltip } from 'antd';
import { MoreOutlined, SaveOutlined } from '@ant-design/icons';
import { useStore } from 'App/mstore';
import { observer } from 'mobx-react-lite';
import { useModal } from 'App/components/Modal';
import SaveSearchModal from '../SaveSearchModal/SaveSearchModal';
import SavedSearchModal from './components/SavedSearchModal';
import { useTranslation } from 'react-i18next';
function SavedSearch() {
const [showModal, setShowModal] = useState(false);
const { searchStore } = useStore();
const { t } = useTranslation();
const { showModal: showListModal } = useModal();
const toggleModal = () => {
if (searchStore.instance.filters.length === 0) return;
setShowModal(true);
};
const isDisabled = searchStore.instance.filters.length === 0;
const toggleList = () => {
showListModal(<SavedSearchModal />, { right: true });
};
return (
<>
<div className="flex gap-2">
<Tooltip
title={
searchStore.list.length === 0
? t('You have not saved any searches')
: ''
}
>
<Button
disabled={searchStore.list.length === 0}
onClick={toggleList}
className="px-2"
type="text"
>
{t('Saved Searches')}
</Button>
</Tooltip>
<Tooltip
title={
isDisabled
? t('Add an event or filter to save search')
: t('Save search filters')
}
>
<Button
onClick={toggleModal}
disabled={isDisabled}
className="px-2"
type="text"
>
{/* {savedSearch.exists() ? 'Update' : 'Save'} Search */}
<SaveOutlined />
</Button>
</Tooltip>
</div>
{showModal && (
<SaveSearchModal
show={showModal}
closeHandler={() => setShowModal(false)}
/>
)}
</>
);
}
export default observer(SavedSearch);