From 23ca40c19aff2f0cb3907c5c6433fa824e0da06e Mon Sep 17 00:00:00 2001 From: lucaronin Date: Mon, 23 Feb 2026 15:35:50 +0100 Subject: [PATCH] fix: hide is_a/Is A from editable properties (already shown as TypeRow) The is_a frontmatter key was appearing both as the TypeRow badge and as a regular editable property. Added both 'is_a' and 'Is A' variants to SKIP_KEYS to prevent duplication (snake_case used in mock data, space-separated used in real vault YAML). Added test verifying is_a is skipped when TypeRow is present. Co-Authored-By: Claude Opus 4.6 --- src/components/DynamicPropertiesPanel.test.tsx | 17 +++++++++++++++++ src/components/DynamicPropertiesPanel.tsx | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/components/DynamicPropertiesPanel.test.tsx b/src/components/DynamicPropertiesPanel.test.tsx index 20e9a701..d28c5293 100644 --- a/src/components/DynamicPropertiesPanel.test.tsx +++ b/src/components/DynamicPropertiesPanel.test.tsx @@ -128,6 +128,23 @@ describe('DynamicPropertiesPanel', () => { expect(screen.getByText('cadence')).toBeInTheDocument() }) + it('skips is_a key since it is shown via TypeRow', () => { + render( + + ) + // Type is shown via TypeRow, is_a should NOT appear as a separate editable property + const editableRows = screen.getAllByTestId('editable-property') + const editableLabels = editableRows.map(row => row.querySelector('span')?.textContent?.replace('×', '').trim()) + expect(editableLabels).not.toContain('is_a') + // But Type row should still show + expect(screen.getByText('Type')).toBeInTheDocument() + expect(screen.getByText('Project')).toBeInTheDocument() + }) + it('renders boolean property as toggle', () => { render(