import { Badge, Button, Dialog, Notification, toast } from '@/components/ui' import navigationIcon from '@/configs/navigation-icon.config' import { useLocalization } from '@/utils/hooks/useLocalization' import CustomStore from 'devextreme/data/custom_store' import { useState } from 'react' import { FaChevronLeft, FaTrashAlt, FaPlusCircle, FaPencilAlt, FaEye, FaSave, FaCog, } from 'react-icons/fa' import { useNavigate } from 'react-router-dom' import { GridColumnData } from '../list/GridColumnData' import { useToolbar } from '../list/useToolbar' import { PermissionResults, RowMode } from './types' import { GridDto } from '@/proxy/form/models' import { ROUTES_ENUM } from '@/routes/route.constant' import { usePermission } from '@/utils/hooks/usePermission' import { GridExtraFilterState } from '../list/Utils' import { usePWA } from '@/utils/hooks/usePWA' const FormButtons = (props: { isSubForm?: boolean mode: RowMode listFormCode: string id?: string gridDto: GridDto commandColumnData: GridColumnData dataSource: CustomStore permissions: PermissionResults handleSubmit: (e: any) => void refreshData: () => void getSelectedRowKeys: () => void getSelectedRowsData: () => any[] getFilter: () => void onActionEdit?: () => void onActionNew?: () => void onActionView?: () => void }) => { const { isSubForm, mode, listFormCode, id, gridDto, commandColumnData, dataSource, permissions, handleSubmit, refreshData, getSelectedRowKeys, getSelectedRowsData, getFilter, onActionEdit, onActionNew, onActionView, } = props const [loading, setLoading] = useState(false) const [deleteRowId, setDeleteRowId] = useState() const [extraFilters, setExtraFilters] = useState([]) const { checkPermission } = usePermission() const isPwaMode = usePWA() const navigate = useNavigate() const { translate } = useLocalization() const { toolbarData } = useToolbar({ gridDto, listFormCode, getSelectedRowKeys, getSelectedRowsData, refreshData, getFilter, }) const handleDelete = async (e: any) => { //auth check e.preventDefault() if (!dataSource || !id) { return } setLoading(true) try { await dataSource.remove(id) setDeleteRowId(undefined) if (props.onActionNew) { props.onActionNew() } else { navigate(-1) } toast.push( {translate('::ListForms.FormBilgileriSilindi')} , { placement: 'top-end', }, ) } catch (error: any) { toast.push(, { placement: 'top-end', }) } finally { setLoading(false) } } return ( <>
{toolbarData ?.filter( (item) => item.widget == 'dxButton' && item.name != 'deleteAllRecords' && item.name != 'deleteSelectedRecords', ) .map((item, i) => { const IconComp = navigationIcon[item.options?.icon] // React bileşeni olabilir ya da undefined const hasValidIcon = IconComp && (typeof IconComp === 'function' || (typeof IconComp === 'object' && 'render' in IconComp)) return ( ) })} {!!toolbarData?.filter( (item) => item.widget == 'dxButton' && item.name != 'deleteAllRecords' && item.name != 'deleteSelectedRecords', ).length && } {commandColumnData?.buttons ?.filter((item) => typeof item !== 'string') .map((item, i) => { return ( ) })} {!!commandColumnData?.buttons?.filter((item) => typeof item !== 'string').length && ( )} {!isSubForm && ( )} {mode != 'new' && ( )} {mode != 'new' && ( )} {mode == 'view' && ( )} {(mode == 'edit' || (onActionView && mode == 'new')) && ( )} {(mode == 'edit' || mode == 'new') && ( )} {checkPermission(gridDto?.gridOptions.permissionDto.c) && !isSubForm && ( )}
setDeleteRowId(undefined)} onRequestClose={() => setDeleteRowId(undefined)} >
Delete

Silmek istediğinize emin misiniz?

) } export default FormButtons