From d2845e687b990536442c40b05dc82db560436d4e Mon Sep 17 00:00:00 2001 From: Quorafind Date: Thu, 4 Dec 2025 11:37:45 +0800 Subject: [PATCH] fix(quick-capture): initialize default filename when input is empty --- .../MinimalQuickCaptureModalWithSwitch.ts | 18 ++++++++++++++---- .../modals/QuickCaptureModalWithSwitch.ts | 11 +++++++++++ 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/components/features/quick-capture/modals/MinimalQuickCaptureModalWithSwitch.ts b/src/components/features/quick-capture/modals/MinimalQuickCaptureModalWithSwitch.ts index 0c903f14..d90514fe 100644 --- a/src/components/features/quick-capture/modals/MinimalQuickCaptureModalWithSwitch.ts +++ b/src/components/features/quick-capture/modals/MinimalQuickCaptureModalWithSwitch.ts @@ -37,7 +37,11 @@ export class MinimalQuickCaptureModal extends BaseQuickCaptureModal { private targetFileEl: HTMLDivElement | null = null; private editorContainer: HTMLElement | null = null; - constructor(app: App, plugin: TaskProgressBarPlugin, metadata?: TaskMetadata) { + constructor( + app: App, + plugin: TaskProgressBarPlugin, + metadata?: TaskMetadata, + ) { // Default to checkbox mode for task creation super(app, plugin, "checkbox", metadata); @@ -228,6 +232,10 @@ export class MinimalQuickCaptureModal extends BaseQuickCaptureModal { }, }); + // Initialize customFileName with resolved path so file-mode saves work + // even when user doesn't edit the input + this.taskMetadata.customFileName = resolvedPath; + // Update the customFileName when input changes this.fileNameInput.addEventListener("input", () => { if (this.fileNameInput) { @@ -660,9 +668,11 @@ export class MinimalQuickCaptureModal extends BaseQuickCaptureModal { // Add tags (ensure they start with # but don't double-add) if (this.taskMetadata.tags && this.taskMetadata.tags.length > 0) { - metadata.push(...this.taskMetadata.tags.map((tag) => - tag.startsWith("#") ? tag : `#${tag}` - )); + metadata.push( + ...this.taskMetadata.tags.map((tag) => + tag.startsWith("#") ? tag : `#${tag}`, + ), + ); } // Add metadata to content diff --git a/src/components/features/quick-capture/modals/QuickCaptureModalWithSwitch.ts b/src/components/features/quick-capture/modals/QuickCaptureModalWithSwitch.ts index 9aab4b04..81ed7366 100644 --- a/src/components/features/quick-capture/modals/QuickCaptureModalWithSwitch.ts +++ b/src/components/features/quick-capture/modals/QuickCaptureModalWithSwitch.ts @@ -34,6 +34,7 @@ import { } from "./BaseQuickCaptureModal"; import { FileNameInput } from "../components/FileNameInput"; import { formatDate as formatDateSmart } from "@/utils/date/date-utils"; +import { processDateTemplates } from "@/utils/file/file-operations"; const LAST_USED_MODE_KEY = "task-genius.lastUsedQuickCaptureMode"; @@ -295,6 +296,16 @@ export class QuickCaptureModal extends BaseQuickCaptureModal { }, ); + // Initialize customFileName with default value if not already set + // This ensures the file mode save logic works even when user doesn't modify the input + if (!this.taskMetadata.customFileName) { + const defaultTemplate = + this.plugin.settings.quickCapture.defaultFileNameTemplate || + "{{DATE:YYYY-MM-DD}} - Task"; + this.taskMetadata.customFileName = + processDateTemplates(defaultTemplate); + } + // Set initial value if exists if (this.taskMetadata.customFileName) { this.fileNameInput.setValue(this.taskMetadata.customFileName);