import React from 'react'; import axios from 'axios'; import { GridColDef, GridRowParams } from '@mui/x-data-grid'; import ListActionsPopover from '../ListActionsPopover'; import { hasPermission } from '../../helpers/userPermissions'; import { logger } from '../../lib/logger'; type Params = (id: string) => void; export const loadColumns = async ( onDelete: Params, entityName: string, user: unknown, ): Promise => { async function callOptionsApi(entityName: string) { if (!hasPermission(user, 'READ_' + entityName.toUpperCase())) return []; try { const data = await axios(`/${entityName}/autocomplete?limit=100`); return data.data; } catch (error) { logger.error( 'Failed to fetch options', error instanceof Error ? error : { error }, ); return []; } } const hasUpdatePermission = hasPermission(user, 'UPDATE_PERMISSIONS'); return [ { field: 'name', headerName: 'Name', flex: 1, minWidth: 120, filterable: false, headerClassName: 'datagrid--header', cellClassName: 'datagrid--cell', editable: hasUpdatePermission, }, { field: 'actions', type: 'actions' as const, minWidth: 30, headerClassName: 'datagrid--header', cellClassName: 'datagrid--cell', getActions: (params: GridRowParams) => { return [
, ]; }, }, ]; };