|
| 1 | + |
1 | 2 | /** |
2 | 3 | * @fileoverview |
3 | 4 | * This component renders the collapsible content area of a tree node. |
@@ -166,32 +167,35 @@ export function TreeNodeContent({ node, template, isExpanded, level, onSelect, c |
166 | 167 | } |
167 | 168 | }} |
168 | 169 | /> |
169 | | - <Label htmlFor={`view-${node.id}-${field.id}`} className={cn("font-normal", isChecked && "line-through text-muted-foreground")}> |
| 170 | + <Label htmlFor={`view-${node.id}-${field.id}`} className={cn("font-normal", isChecked && "text-muted-foreground")}> |
170 | 171 | {field.name} |
171 | 172 | </Label> |
172 | 173 | </div> |
173 | 174 | ); |
174 | 175 | } |
175 | 176 | case 'checklist': { |
176 | | - const items: ChecklistItem[] = value; |
177 | | - if (!items || !Array.isArray(items) || items.length === 0) return null; |
| 177 | + const items: ChecklistItem[] = value || []; |
178 | 178 |
|
179 | 179 | return ( |
180 | 180 | <div key={field.id} className="mt-4" onClick={(e) => e.stopPropagation()} onDoubleClick={(e) => e.stopPropagation()}> |
181 | 181 | <p className="font-medium text-sm mb-2">{field.name}</p> |
182 | | - <div className="space-y-2"> |
183 | | - {items.map(item => ( |
184 | | - <div key={item.id} className="flex items-center gap-2"> |
185 | | - <Checkbox |
186 | | - checked={item.checked} |
187 | | - onCheckedChange={(checked) => handleCheckboxChange(field.id, item.id, !!checked)} |
188 | | - /> |
189 | | - <span className={cn("text-sm", item.checked && "line-through text-muted-foreground")}> |
190 | | - {item.text} |
191 | | - </span> |
192 | | - </div> |
193 | | - ))} |
194 | | - </div> |
| 182 | + {items.length > 0 ? ( |
| 183 | + <div className="space-y-2"> |
| 184 | + {items.map(item => ( |
| 185 | + <div key={item.id} className="flex items-center gap-2"> |
| 186 | + <Checkbox |
| 187 | + checked={item.checked} |
| 188 | + onCheckedChange={(checked) => handleCheckboxChange(field.id, item.id, !!checked)} |
| 189 | + /> |
| 190 | + <span className={cn("text-sm", item.checked && "text-muted-foreground")}> |
| 191 | + {item.text} |
| 192 | + </span> |
| 193 | + </div> |
| 194 | + ))} |
| 195 | + </div> |
| 196 | + ) : ( |
| 197 | + <p className="text-sm text-muted-foreground italic px-2">No items.</p> |
| 198 | + )} |
195 | 199 | </div> |
196 | 200 | ) |
197 | 201 | } |
@@ -373,7 +377,6 @@ export function TreeNodeContent({ node, template, isExpanded, level, onSelect, c |
373 | 377 |
|
374 | 378 | return ( |
375 | 379 | <div key="table-block" className="mt-2 text-sm" onClick={(e) => e.stopPropagation()} onDoubleClick={(e) => e.stopPropagation()}> |
376 | | - <p className="font-medium mb-1">Table</p> |
377 | 380 | <div className="overflow-x-auto rounded-md border"> |
378 | 381 | <Table> |
379 | 382 | <TableHeader> |
|
0 commit comments