import React from 'react'; import { connect } from 'react-redux'; import { editSavedSearch as edit, save, remove } from 'Duck/search'; import { Button, Modal, Form, Icon, Checkbox, Input } from 'UI'; import { confirm } from 'UI'; import stl from './SaveSearchModal.module.css'; import cn from 'classnames'; import { toast } from 'react-toastify'; interface Props { filter: any; loading: boolean; edit: (filter: any) => void; save: (searchId: any, rename: boolean) => Promise; show: boolean; closeHandler: () => void; savedSearch: any; remove: (filterId: number) => Promise; userId: number; rename: boolean; } function SaveSearchModal(props: Props) { const { savedSearch, loading, show, closeHandler, rename = false } = props; const onNameChange = ({ target: { value } }: any) => { props.edit({ name: value }); }; const onSave = () => { const { closeHandler } = props; props .save(savedSearch.exists() ? savedSearch.searchId : null, rename) .then(() => { toast.success(`${savedSearch.exists() ? 'Updated' : 'Saved'} Successfully`); closeHandler(); }) .catch((e) => { toast.error('Something went wrong, please try again'); }); }; const onDelete = async () => { if ( await confirm({ header: 'Confirm', confirmButton: 'Yes, delete', confirmation: `Are you sure you want to permanently delete this Saved search?`, }) ) { props.remove(savedSearch.searchId).then(() => { closeHandler(); }); } }; const onChangeOption = ({ target: { checked, name } }: any) => props.edit({ [name]: checked }); return (
{'Save Search'}
props.edit({ isPublic: !savedSearch.isPublic })} > Team Visible
{/* {savedSearch.exists() &&
Changes in filters will be updated.
} */}
{savedSearch.exists() && ( )}
); } export default connect( (state: any) => ({ userId: state.getIn(['user', 'account', 'id']), savedSearch: state.getIn(['search', 'savedSearch']), filter: state.getIn(['search', 'instance']), loading: state.getIn(['search', 'saveRequest', 'loading']) || state.getIn(['search', 'updateRequest', 'loading']), }), { edit, save, remove } )(SaveSearchModal);