Skip to content

Commit 25b1be6

Browse files
fix: error handling for getEntryPermissionsCached usages
1 parent ce30b02 commit 25b1be6

2 files changed

Lines changed: 60 additions & 26 deletions

File tree

src/visualBuilder/listeners/mouseClick.ts

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -302,11 +302,20 @@ async function handleFieldSchemaAndIndividualFields(
302302
content_type_uid,
303303
fieldPath
304304
);
305-
const entryAcl = await getEntryPermissionsCached({
306-
entryUid: entry_uid,
307-
contentTypeUid: content_type_uid,
308-
locale,
309-
});
305+
let entryAcl;
306+
try {
307+
entryAcl = await getEntryPermissionsCached({
308+
entryUid: entry_uid,
309+
contentTypeUid: content_type_uid,
310+
locale,
311+
});
312+
} catch (error) {
313+
console.error(
314+
"[Visual Builder] Error retrieving entry permissions:",
315+
error
316+
);
317+
return;
318+
}
310319

311320
if (fieldSchema) {
312321
const { isDisabled } = isFieldDisabled(

src/visualBuilder/listeners/mouseHover.ts

Lines changed: 46 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import { VB_EmptyBlockParentClass } from "../..";
1414
import Config from "../../configManager/configManager";
1515
import { isCollabThread } from "../generators/generateThread";
1616
import { getEntryPermissionsCached } from "../utils/getEntryPermissionsCached";
17+
import { EntryPermissions } from "../utils/getEntryPermissions";
1718

1819
const config = Config.get();
1920
export interface HandleMouseHoverParams
@@ -235,24 +236,36 @@ async function handleMouseHover(params: HandleMouseHoverParams): Promise<void> {
235236
(fieldSchema) => {
236237
if (!fieldSchema) return;
237238

239+
let entryAcl: EntryPermissions | undefined;
238240
getEntryPermissionsCached({
239241
entryUid: fieldMetadata.entry_uid,
240242
contentTypeUid: fieldMetadata.content_type_uid,
241243
locale: fieldMetadata.locale,
242-
}).then((entryAcl) => {
243-
if (!params.customCursor) return;
244-
const { isDisabled: fieldDisabled } = isFieldDisabled(
245-
fieldSchema,
246-
eventDetails,
247-
entryAcl
248-
);
249-
const fieldType = getFieldType(fieldSchema);
250-
generateCustomCursor({
251-
fieldType,
252-
customCursor: params.customCursor,
253-
fieldDisabled,
244+
})
245+
.then((data) => {
246+
entryAcl = data;
247+
})
248+
.catch((error) => {
249+
console.error(
250+
"[Visual Builder] Error retrieving entry permissions:",
251+
error
252+
);
253+
})
254+
.finally(() => {
255+
if (!params.customCursor) return;
256+
const { isDisabled: fieldDisabled } =
257+
isFieldDisabled(
258+
fieldSchema,
259+
eventDetails,
260+
entryAcl
261+
);
262+
const fieldType = getFieldType(fieldSchema);
263+
generateCustomCursor({
264+
fieldType,
265+
customCursor: params.customCursor,
266+
fieldDisabled,
267+
});
254268
});
255-
});
256269
}
257270
);
258271

@@ -267,19 +280,31 @@ async function handleMouseHover(params: HandleMouseHoverParams): Promise<void> {
267280
addOutline(editableElement);
268281
FieldSchemaMap.getFieldSchema(content_type_uid, fieldPath).then(
269282
(fieldSchema) => {
283+
let entryAcl: EntryPermissions | undefined;
270284
if (!fieldSchema) return;
271285
getEntryPermissionsCached({
272286
entryUid: fieldMetadata.entry_uid,
273287
contentTypeUid: fieldMetadata.content_type_uid,
274288
locale: fieldMetadata.locale,
275-
}).then((entryAcl) => {
276-
const { isDisabled: fieldDisabled } = isFieldDisabled(
277-
fieldSchema,
278-
eventDetails,
279-
entryAcl
280-
);
281-
addOutline(editableElement, fieldDisabled);
282-
});
289+
})
290+
.then((data) => {
291+
entryAcl = data;
292+
})
293+
.catch((error) => {
294+
console.error(
295+
"[Visual Builder] Error retrieving entry permissions:",
296+
error
297+
);
298+
})
299+
.finally(() => {
300+
const { isDisabled: fieldDisabled } =
301+
isFieldDisabled(
302+
fieldSchema,
303+
eventDetails,
304+
entryAcl
305+
);
306+
addOutline(editableElement, fieldDisabled);
307+
});
283308
}
284309
);
285310
}

0 commit comments

Comments
 (0)