Skip to content

Commit 8814b88

Browse files
committed
fix(field-toolbar): hide comment + field-location icons on read-restricted fields
VB-1541
1 parent 249ef33 commit 8814b88

2 files changed

Lines changed: 16 additions & 5 deletions

File tree

src/visualBuilder/components/FieldToolbar.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,7 @@ function FieldToolbarComponent(
156156
let disableFieldActions = false;
157157
let isCustomFieldMultipleInstance = false;
158158
let isCustomFieldWholeMultiple = false;
159+
let isFieldReadRestricted = false;
159160
if (fieldSchema) {
160161
const { isDisabled } = isFieldDisabled(
161162
fieldSchema,
@@ -168,6 +169,7 @@ function FieldToolbarComponent(
168169
entryWorkflowStageDetails,
169170
);
170171
disableFieldActions = isDisabled;
172+
isFieldReadRestricted = !!fieldSchema.field_metadata?.readRestrict;
171173

172174
fieldType = getFieldType(fieldSchema);
173175

@@ -595,7 +597,7 @@ function FieldToolbarComponent(
595597
{isModalEditable ? editButton : null}
596598
{isReplaceAllowed ? replaceButton : null}
597599
{formButton}
598-
{fieldSchema && !disableFieldActions ? (
600+
{fieldSchema && !isFieldReadRestricted ? (
599601
<CommentIcon
600602
fieldMetadata={fieldMetadata}
601603
fieldSchema={fieldSchema}
@@ -607,7 +609,7 @@ function FieldToolbarComponent(
607609
</>
608610
)}
609611

610-
{!disableFieldActions && (
612+
{!isFieldReadRestricted && (
611613
<FieldLocationIcon
612614
fieldLocationData={fieldLocationData}
613615
multipleFieldToolbarButtonClasses={

src/visualBuilder/components/__test__/fieldToolbar.test.tsx

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -321,11 +321,20 @@ describe("FieldToolbarComponent", () => {
321321
).toBeInTheDocument();
322322
});
323323

324-
test("hides CommentIcon and FieldLocationIcon when field is disabled (update restrict)", async () => {
324+
test("hides CommentIcon and FieldLocationIcon when field is read-restricted", async () => {
325325
vi.mocked(isFieldDisabled).mockReturnValue({
326-
isDisabled: true,
327-
reason: "You have only read access to this field" as any,
326+
isDisabled: false,
327+
reason: "" as any,
328328
});
329+
vi.mocked(FieldSchemaMap.getFieldSchema).mockImplementation(() =>
330+
Promise.resolve({
331+
...mockMultipleLinkFieldSchema,
332+
field_metadata: {
333+
...mockMultipleLinkFieldSchema.field_metadata,
334+
readRestrict: true,
335+
},
336+
} as ISchemaFieldMap)
337+
);
329338

330339
const { container } = render(
331340
<FieldToolbarComponent

0 commit comments

Comments
 (0)