fix: block frontmatter writes for attachments
This commit is contained in:
@@ -634,6 +634,29 @@ Status: Active
|
||||
expect(onInit).toHaveBeenCalledWith('/vault/plain-note.md')
|
||||
})
|
||||
|
||||
it('does not offer frontmatter initialization for binary attachments', () => {
|
||||
const onInit = vi.fn()
|
||||
const attachmentEntry: VaultEntry = {
|
||||
...noFrontmatterEntry,
|
||||
path: '/vault/attachments/screenshot.png',
|
||||
filename: 'screenshot.png',
|
||||
title: 'screenshot.png',
|
||||
fileKind: 'binary',
|
||||
}
|
||||
|
||||
render(
|
||||
<Inspector
|
||||
{...defaultProps}
|
||||
entry={attachmentEntry}
|
||||
content=""
|
||||
onInitializeProperties={onInit}
|
||||
/>
|
||||
)
|
||||
|
||||
expect(screen.queryByText('Initialize properties')).not.toBeInTheDocument()
|
||||
expect(onInit).not.toHaveBeenCalled()
|
||||
})
|
||||
|
||||
it('shows invalid frontmatter notice with fix button', () => {
|
||||
render(
|
||||
<Inspector
|
||||
|
||||
@@ -48,6 +48,10 @@ function buildTypeEntryMap(entries: VaultEntry[]): Record<string, VaultEntry> {
|
||||
return map
|
||||
}
|
||||
|
||||
function supportsFrontmatter(entry: VaultEntry): boolean {
|
||||
return entry.fileKind === undefined || entry.fileKind === 'markdown'
|
||||
}
|
||||
|
||||
function ValidFrontmatterPanels({
|
||||
entry,
|
||||
entries,
|
||||
@@ -212,24 +216,26 @@ function InspectorBody({
|
||||
|
||||
return (
|
||||
<>
|
||||
<PrimaryInspectorPanel
|
||||
entry={entry}
|
||||
frontmatterState={frontmatterState}
|
||||
frontmatter={frontmatter}
|
||||
entries={entries}
|
||||
typeEntryMap={typeEntryMap}
|
||||
vaultPath={vaultPath}
|
||||
referencedBy={referencedBy}
|
||||
onNavigate={onNavigate}
|
||||
onToggleRawEditor={onToggleRawEditor}
|
||||
onInitializeProperties={onInitializeProperties}
|
||||
onCreateAndOpenNote={onCreateAndOpenNote}
|
||||
onUpdateProperty={onUpdateFrontmatter ? handleUpdateProperty : undefined}
|
||||
onDeleteProperty={onDeleteProperty ? handleDeleteProperty : undefined}
|
||||
onAddProperty={onAddProperty ? handleAddProperty : undefined}
|
||||
onCreateMissingType={onCreateMissingType ? handleCreateMissingType : undefined}
|
||||
locale={locale}
|
||||
/>
|
||||
{supportsFrontmatter(entry) && (
|
||||
<PrimaryInspectorPanel
|
||||
entry={entry}
|
||||
frontmatterState={frontmatterState}
|
||||
frontmatter={frontmatter}
|
||||
entries={entries}
|
||||
typeEntryMap={typeEntryMap}
|
||||
vaultPath={vaultPath}
|
||||
referencedBy={referencedBy}
|
||||
onNavigate={onNavigate}
|
||||
onToggleRawEditor={onToggleRawEditor}
|
||||
onInitializeProperties={onInitializeProperties}
|
||||
onCreateAndOpenNote={onCreateAndOpenNote}
|
||||
onUpdateProperty={onUpdateFrontmatter ? handleUpdateProperty : undefined}
|
||||
onDeleteProperty={onDeleteProperty ? handleDeleteProperty : undefined}
|
||||
onAddProperty={onAddProperty ? handleAddProperty : undefined}
|
||||
onCreateMissingType={onCreateMissingType ? handleCreateMissingType : undefined}
|
||||
locale={locale}
|
||||
/>
|
||||
)}
|
||||
{backlinks.length > 0 && <Separator />}
|
||||
<BacklinksPanel backlinks={backlinks} onNavigate={onNavigate} />
|
||||
<Separator />
|
||||
|
||||
Reference in New Issue
Block a user