Skip to content
File

Blob: src/client/lib/affordance/canvas.ts

typescript21 lines
1import { getPageEditEntitlements, type EntitlementSurface, type PageAccessLevel } from "@/shared/entitlements";
2 
3export interface CanvasAffordance {
4 canEdit: boolean;
5 canInsertImages: boolean;
6}
7 
8export function deriveCanvasAffordance(input: {
9 surface: EntitlementSurface;
10 pageAccess: PageAccessLevel;
11 workspaceId: string | undefined;
12 online: boolean;
13}): CanvasAffordance {
14 const { surface, pageAccess, workspaceId, online } = input;
15 const pageEdit = getPageEditEntitlements(surface, pageAccess);
16 return {
17 canEdit: pageEdit.editDocument,
18 canInsertImages: pageEdit.uploadImage && !!workspaceId && online,
19 };
20}