* feat: display record identifier field as first column in table & forbid hiding and moving record identifier column Closes #3303 * refactor: add availableTableColumnKeysSelectorScopeMap * feat: show plus icon button for label identifier column and dropdown menu for other columns * fix: use label identifier field value in RecordShowPage title * refactor: remove availableColumnKeys selector * refactor: review - compute label identifier logic in mapViewFieldsToColumnDefinitions + remove selectors * fix: several fixes * fix: fix board fields isVisible * fix: fix board fields reordering * fix: more board fields fixes * fix: fix hiddenTableColumnsSelectorScopeMap
38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
import {
|
|
FieldMetadataItemAsFieldDefinitionProps,
|
|
formatFieldMetadataItemAsFieldDefinition,
|
|
} from '@/object-metadata/utils/formatFieldMetadataItemAsFieldDefinition';
|
|
import { isLabelIdentifierField } from '@/object-metadata/utils/isLabelIdentifierField';
|
|
import { FieldMetadata } from '@/object-record/record-field/types/FieldMetadata';
|
|
import { ColumnDefinition } from '@/object-record/record-table/types/ColumnDefinition';
|
|
|
|
type FieldMetadataItemAsColumnDefinitionProps = {
|
|
position: number;
|
|
} & FieldMetadataItemAsFieldDefinitionProps;
|
|
|
|
export const formatFieldMetadataItemAsColumnDefinition = ({
|
|
position,
|
|
field,
|
|
objectMetadataItem,
|
|
showLabel,
|
|
labelWidth,
|
|
}: FieldMetadataItemAsColumnDefinitionProps): ColumnDefinition<FieldMetadata> => {
|
|
const isLabelIdentifier = isLabelIdentifierField({
|
|
fieldMetadataItem: field,
|
|
objectMetadataItem,
|
|
});
|
|
|
|
return {
|
|
...formatFieldMetadataItemAsFieldDefinition({
|
|
field,
|
|
objectMetadataItem,
|
|
showLabel,
|
|
labelWidth,
|
|
}),
|
|
position: isLabelIdentifier ? 0 : position,
|
|
size: 100,
|
|
isLabelIdentifier,
|
|
isVisible: true,
|
|
};
|
|
};
|