diff --git a/frontend/app.js b/frontend/app.js
index 9ed5e39..2aa75da 100644
--- a/frontend/app.js
+++ b/frontend/app.js
@@ -99,7 +99,7 @@ function noteApp() {
// Dropdown state
showNewDropdown: false,
- dropdownTargetFolder: '', // Folder context for "New" dropdown (empty = root)
+ dropdownTargetFolder: null, // Folder context for "New" dropdown ('' = root, null = not set)
dropdownPosition: { top: 0, left: 0 }, // Position for contextual dropdown
// Template state
@@ -628,9 +628,16 @@ function noteApp() {
notePath += '.md';
}
- // If we have a target folder context, create in that folder
- if (this.dropdownTargetFolder || this.selectedHomepageFolder) {
- const targetFolder = this.dropdownTargetFolder || this.selectedHomepageFolder;
+ // Determine target folder: use dropdown context if set, otherwise homepage folder
+ let targetFolder;
+ if (this.dropdownTargetFolder !== null && this.dropdownTargetFolder !== undefined) {
+ targetFolder = this.dropdownTargetFolder; // Can be '' for root or a folder path
+ } else {
+ targetFolder = this.selectedHomepageFolder || '';
+ }
+
+ // If we have a target folder, create note in that folder
+ if (targetFolder) {
notePath = `${targetFolder}/${notePath}`;
}
@@ -1998,7 +2005,7 @@ function noteApp() {
closeDropdown() {
this.showNewDropdown = false;
- this.dropdownTargetFolder = ''; // Reset folder context
+ this.dropdownTargetFolder = null; // Reset folder context
},
// =====================================================
@@ -2006,8 +2013,16 @@ function noteApp() {
// =====================================================
async createNote(folderPath = null) {
- // Use provided folder path, or dropdown target folder context
- const targetFolder = folderPath !== null ? folderPath : this.dropdownTargetFolder;
+ // Use provided folder path, or dropdown target folder context, or homepage folder
+ // Note: Check dropdownTargetFolder !== null to distinguish between '' (root) and not set
+ let targetFolder;
+ if (folderPath !== null) {
+ targetFolder = folderPath;
+ } else if (this.dropdownTargetFolder !== null && this.dropdownTargetFolder !== undefined) {
+ targetFolder = this.dropdownTargetFolder; // Can be '' for root or a folder path
+ } else {
+ targetFolder = this.selectedHomepageFolder || '';
+ }
this.closeDropdown();
const promptText = targetFolder
@@ -2059,8 +2074,16 @@ function noteApp() {
},
async createFolder(parentPath = null) {
- // Use provided parent path, or dropdown target folder context
- const targetFolder = parentPath !== null ? parentPath : this.dropdownTargetFolder;
+ // Use provided parent path, or dropdown target folder context, or homepage folder
+ // Note: Check dropdownTargetFolder !== null to distinguish between '' (root) and not set
+ let targetFolder;
+ if (parentPath !== null) {
+ targetFolder = parentPath;
+ } else if (this.dropdownTargetFolder !== null && this.dropdownTargetFolder !== undefined) {
+ targetFolder = this.dropdownTargetFolder; // Can be '' for root or a folder path
+ } else {
+ targetFolder = this.selectedHomepageFolder || '';
+ }
this.closeDropdown();
const promptText = targetFolder
@@ -2098,6 +2121,9 @@ function noteApp() {
}
this.expandedFolders.add(folderPath);
await this.loadNotes();
+
+ // Navigate to the newly created folder on the homepage
+ this.goToHomepageFolder(folderPath);
} else {
ErrorHandler.handle('create folder', new Error('Server returned error'));
}
@@ -3397,6 +3423,12 @@ function noteApp() {
goToHomepageFolder(folderPath) {
this.selectedHomepageFolder = folderPath || '';
+ // Clear editor state to show landing page
+ this.currentNote = '';
+ this.currentNoteName = '';
+ this.noteContent = '';
+ this.currentImage = '';
+
// Invalidate cache to force recalculation
this._homepageCache = {
folderPath: null,
diff --git a/frontend/index.html b/frontend/index.html
index 9d89623..bf35062 100644
--- a/frontend/index.html
+++ b/frontend/index.html
@@ -1129,19 +1129,19 @@
Create your first note to get started
+ + @@ -1236,10 +1236,24 @@