Skip to content

Commit 2393721

Browse files
authored
fix(ui): safely access fieldPermissions (#14458)
This prevents an error thrown when trying to read from `fieldPermissions` despite it being undefined. This occasionally happened when navigating to the list view through login redirect. This would have been caught by typescript if we had strict mode enabled in the ui package.
1 parent 827c9a1 commit 2393721

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

packages/ui/src/providers/TableColumns/buildColumnState/filterFieldsWithPermissions.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ export const filterFieldsWithPermissions = <T extends ClientField | Field = Clie
5353
typeof fieldPermissions === 'boolean'
5454
? fieldPermissions
5555
: 'name' in field && field.name
56-
? fieldPermissions[field.name]?.fields || fieldPermissions[field.name]
56+
? fieldPermissions?.[field.name]?.fields || fieldPermissions?.[field.name]
5757
: fieldPermissions,
5858
fields: field.fields,
5959
}),
@@ -68,7 +68,7 @@ export const filterFieldsWithPermissions = <T extends ClientField | Field = Clie
6868
}
6969

7070
if (fieldAffectsData(field)) {
71-
const fieldPermission = fieldPermissions[field.name]
71+
const fieldPermission = fieldPermissions?.[field.name]
7272
// Always allow ID fields, or if explicitly granted (true or { read: true })
7373
// undefined means field is not in permissions object = denied
7474
if (fieldIsID(field) || fieldPermission === true || fieldPermission?.read === true) {

packages/ui/src/utilities/reduceFieldsToOptions.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ export const reduceFieldsToOptions = ({
7979
typeof fieldPermissions === 'boolean'
8080
? fieldPermissions
8181
: tabHasName(tab) && tab.name
82-
? fieldPermissions[tab.name]?.fields || fieldPermissions[tab.name]
82+
? fieldPermissions?.[tab.name]?.fields || fieldPermissions?.[tab.name]
8383
: fieldPermissions,
8484
fields: tab.fields,
8585
i18n,
@@ -148,7 +148,7 @@ export const reduceFieldsToOptions = ({
148148
fieldPermissions:
149149
typeof fieldPermissions === 'boolean'
150150
? fieldPermissions
151-
: fieldPermissions[field.name]?.fields || fieldPermissions[field.name],
151+
: fieldPermissions?.[field.name]?.fields || fieldPermissions?.[field.name],
152152
fields: field.fields,
153153
i18n,
154154
labelPrefix: labelWithPrefix,
@@ -191,7 +191,7 @@ export const reduceFieldsToOptions = ({
191191
fieldPermissions:
192192
typeof fieldPermissions === 'boolean'
193193
? fieldPermissions
194-
: fieldPermissions[field.name]?.fields || fieldPermissions[field.name],
194+
: fieldPermissions?.[field.name]?.fields || fieldPermissions?.[field.name],
195195
fields: field.fields,
196196
i18n,
197197
labelPrefix: labelWithPrefix,

0 commit comments

Comments
 (0)