Skip to main content

fieldUtils

Reference

Utilities for working with field (column) configuration arrays used in grid and layout widgets.

const { protrakUtils } = React.useContext(customWidgetContext);
const { getVisibleUniqueFields } = protrakUtils;

getVisibleUniqueFields(fields)

Filters an array of field configuration objects to return only fields that are visible (isVisible === true), and removes duplicates based on the combination of fieldType + attributeName.

Parameters:

ParamTypeDescription
fieldsArrayArray of field configuration objects

Returns: Array — Filtered and deduplicated array of visible fields.

Field object shape:

{
fieldType: 'Attribute', // string
attributeName: 'AgreementTitle', // string
attributeType: 'Text', // string
label: 'Agreement Title', // string
isVisible: true, // boolean — must be true to be included
isEditable: false,
isRequired: false,
width: 200,
formatConditions: [],
// ...other grid config fields
}

Usage Example

function FilteredGridWidget(pageContext) {
const { protrakUtils, protrakComponents } =
React.useContext(customWidgetContext);
const { getVisibleUniqueFields } = protrakUtils;
const { InstanceGridForCustomWidget } = protrakComponents;

const rawConfig = pageContext.currentWidgetConfig;

// Filter to only visible, unique fields before passing to the grid
const visibleFields = getVisibleUniqueFields(rawConfig?.fields ?? []);

const configuration = {
...rawConfig,
fields: visibleFields,
};

return (
<InstanceGridForCustomWidget
configuration={configuration}
instanceTypeName={pageContext.instanceType}
/>
);
}