import { Plus, Save, X } from 'lucide-react'; import type { ClassroomStrategyDraft, ClassroomSupportPage, } from '@/business/classroom-support/types'; import { Button } from '@/components/ui/button'; import { ImageUpload } from '@/components/common/ImageUpload'; import { Input } from '@/components/ui/input'; import { NativeSelect } from '@/components/ui/native-select'; import { Textarea } from '@/components/ui/textarea'; import { CLASSROOM_SUPPORT_AGE_FILTERS, CLASSROOM_SUPPORT_CATEGORY_FILTERS, CLASSROOM_SUPPORT_ZONE_FILTERS, } from '@/shared/constants/classroomSupport'; import type { Strategy } from '@/shared/types/app'; interface ClassroomSupportManagementPanelProps { readonly page: ClassroomSupportPage; } type DraftField = keyof ClassroomStrategyDraft; function toStrategyCategory(value: string): Strategy['category'] { switch (value) { case 'transition': case 'sensory': case 'communication': case 'behavior': case 'social': return value; case 'visual-support': default: return 'visual-support'; } } function toStrategyAgeGroup(value: string): Strategy['ageGroup'] { switch (value) { case 'K-2': case '3-5': case '6-8': return value; case 'All': default: return 'All'; } } function toStrategyZone(value: string): Strategy['zone'] { switch (value) { case 'blue': case 'yellow': case 'red': return value; case 'green': default: return 'green'; } } export function ClassroomSupportManagementPanel({ page }: ClassroomSupportManagementPanelProps) { if (!page.canManageStrategies) { return null; } const draft = page.strategyDraft; function updateTextField(field: DraftField, value: string) { page.updateStrategyDraft({ [field]: value }); } return (

Manage Strategy Cards

Organization-level classroom support content

{draft && (

{page.strategyDraftMode === 'create' ? 'New Strategy' : 'Edit Strategy'}

page.updateStrategyDraft({ image: privateUrl ?? '' })} table="classroom-support" field="strategy-images" label="Strategy image" />