File
Blob: src/client/lib/affordance/canvas.ts
| 1 | import { getPageEditEntitlements, type EntitlementSurface, type PageAccessLevel } from "@/shared/entitlements"; |
| 2 | |
| 3 | export interface CanvasAffordance { |
| 4 | canEdit: boolean; |
| 5 | canInsertImages: boolean; |
| 6 | } |
| 7 | |
| 8 | export 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 | } |