import { Text } from '@mantine/core' import { openConfirmModal } from '@mantine/modals' import { showNotification } from '@mantine/notifications' import { IconCheck } from '@tabler/icons-react' import _ from 'lodash' import { IOpenMultiSelectedCustomModal, IOpenSelectedCustomModal, IOpenSelectedWithDataCustomModal, } from './ICustomModal' /** * * @param values * @returns */ export const openSelectModal = (values: IOpenSelectedCustomModal) => { const { id, mutation, query, title, description, labelConfirm, labelCancel } = values const defaultTitle = title ?? 'Delete data' const defaultDescription = description ?? 'Are you sure to delete this data ?' const defaultLabelConfirm = labelConfirm ?? 'Confirm Delete' const defaultLabelCancel = labelCancel ?? 'No, Cancel' return openConfirmModal({ title: defaultTitle, centered: true, children: {defaultDescription}, labels: { confirm: defaultLabelConfirm, cancel: defaultLabelCancel }, confirmProps: { color: 'red' }, onCancel: () => null, onConfirm: async () => { try { const response = await mutation?.mutateAsync(id) const message = _.get(response, 'data.message', '') as string showNotification({ title: 'Berhasil!', message, icon: , color: 'green', }) } catch (error) { const errMessage = _.get(error, 'response.data.message', '') console.log(errMessage) } finally { query.refetch() } }, }) } /** * * @param values * @returns */ export const openMultiSelectModal = (values: IOpenMultiSelectedCustomModal) => { const { ids, mutation, query, title, description, labelConfirm, labelCancel, } = values const defaultTitle = title ?? 'Delete selected data' const defaultDescription = description ?? 'Are you sure to delete selected data ?' const defaultLabelConfirm = labelConfirm ?? 'Confirm Delete' const defaultLabelCancel = labelCancel ?? 'No, Cancel' return openConfirmModal({ title: defaultTitle, centered: true, children: {defaultDescription}, labels: { confirm: defaultLabelConfirm, cancel: defaultLabelCancel }, confirmProps: { color: 'red' }, onCancel: () => null, onConfirm: async () => { try { const response = await mutation?.mutateAsync(ids) const message = _.get(response, 'data.message', '') as string showNotification({ title: 'Berhasil!', message, icon: , color: 'green', }) } catch (error) { const errMessage = _.get(error, 'response.data.message', '') console.log(errMessage) } finally { query.refetch() } }, }) } /** * * @param values * @returns */ export function openSelectModalWithData( values: IOpenSelectedWithDataCustomModal ) { const { data, mutation, query, title, description, labelConfirm, labelCancel, } = values const defaultTitle = title ?? 'Delete selected data' const defaultDescription = description ?? 'Are you sure to delete selected data ?' const defaultLabelConfirm = labelConfirm ?? 'Confirm Delete' const defaultLabelCancel = labelCancel ?? 'No, Cancel' return openConfirmModal({ title: defaultTitle, centered: true, children: {defaultDescription}, labels: { confirm: defaultLabelConfirm, cancel: defaultLabelCancel }, confirmProps: { color: 'red' }, onCancel: () => null, onConfirm: async () => { try { const response = await mutation?.mutateAsync(data) const message = _.get(response, 'data.message', '') as string showNotification({ title: 'Berhasil!', message, icon: , color: 'green', }) } catch (error) { const errMessage = _.get(error, 'response.data.message', '') console.log(errMessage) } finally { query.refetch() } }, }) }