import "server-only"; import { CANVAS_TOOLBAR_CONFIG_SETTING_KEY, isCanvasToolbarItemEnabled, normalizeCanvasToolbarConfig, type CanvasToolbarItemKey, } from "@/lib/canvas-toolbar-config"; import type { CanvasCapabilityDefinition } from "@/lib/canvas/capabilities/types"; import { getSystemSetting } from "@/lib/db/queries"; export async function isCanvasCapabilityEnabled( capability: CanvasCapabilityDefinition ) { const enabledIds = await getEnabledCanvasCapabilityIds([capability]); return enabledIds.has(capability.id); } export async function getEnabledCanvasCapabilityIds( capabilities: readonly CanvasCapabilityDefinition[] ) { const setting = await getSystemSetting({ key: CANVAS_TOOLBAR_CONFIG_SETTING_KEY, }).catch(() => null); const config = normalizeCanvasToolbarConfig(setting?.value); return new Set( capabilities .filter( (capability) => !capability.toolbarSettingKey || isCanvasToolbarItemEnabled( config, capability.toolbarSettingKey as CanvasToolbarItemKey ) ) .map((capability) => capability.id) ); }