Pages corrections pages missions
This commit is contained in:
parent
bad4aca1dd
commit
50a7b0c696
@ -548,8 +548,18 @@ export default function CarnetPage() {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// For other folders (Bloc-notes)
|
// For other folders (Bloc-notes)
|
||||||
|
console.log(`[handleSaveNote] BLOC-NOTES: Starting save process`);
|
||||||
|
console.log(`[handleSaveNote] BLOC-NOTES: note.id = "${note.id}"`);
|
||||||
|
console.log(`[handleSaveNote] BLOC-NOTES: noteTitle = "${noteTitle}"`);
|
||||||
|
console.log(`[handleSaveNote] BLOC-NOTES: note.title = "${note.title}"`);
|
||||||
|
console.log(`[handleSaveNote] BLOC-NOTES: Current notes count: ${notes.length}`);
|
||||||
|
console.log(`[handleSaveNote] BLOC-NOTES: Current notes:`, notes.map(n => ({ id: n.id, title: n.title })));
|
||||||
|
|
||||||
// Refresh notes list to ensure we have the latest data
|
// Refresh notes list to ensure we have the latest data
|
||||||
|
console.log(`[handleSaveNote] BLOC-NOTES: Refreshing notes list...`);
|
||||||
await fetchNotes(true);
|
await fetchNotes(true);
|
||||||
|
console.log(`[handleSaveNote] BLOC-NOTES: After refresh, notes count: ${notes.length}`);
|
||||||
|
console.log(`[handleSaveNote] BLOC-NOTES: After refresh, notes:`, notes.map(n => ({ id: n.id, title: n.title })));
|
||||||
|
|
||||||
// Check if the current note.id corresponds to an "Untitled" note
|
// Check if the current note.id corresponds to an "Untitled" note
|
||||||
// and if we're giving it a new title (renaming scenario)
|
// and if we're giving it a new title (renaming scenario)
|
||||||
@ -561,19 +571,25 @@ export default function CarnetPage() {
|
|||||||
noteTitle.trim() !== '' &&
|
noteTitle.trim() !== '' &&
|
||||||
noteTitle !== 'Untitled';
|
noteTitle !== 'Untitled';
|
||||||
|
|
||||||
|
console.log(`[handleSaveNote] BLOC-NOTES: isRenamingUntitled = ${isRenamingUntitled}`);
|
||||||
|
if (isRenamingUntitled) {
|
||||||
|
console.log(`[handleSaveNote] BLOC-NOTES: Detected renaming scenario`);
|
||||||
|
}
|
||||||
|
|
||||||
if (isRenamingUntitled) {
|
if (isRenamingUntitled) {
|
||||||
// We're renaming an Untitled note to a new title
|
// We're renaming an Untitled note to a new title
|
||||||
const sanitizedTitle = noteTitle.replace(/[^a-zA-Z0-9._-]/g, '_');
|
const sanitizedTitle = noteTitle.replace(/[^a-zA-Z0-9._-]/g, '_');
|
||||||
fileKey = `user-${session?.user?.id}/${selectedFolder.toLowerCase()}/${sanitizedTitle}.md`;
|
fileKey = `user-${session?.user?.id}/${selectedFolder.toLowerCase()}/${sanitizedTitle}.md`;
|
||||||
console.log(`[handleSaveNote] Renaming Untitled note to "${noteTitle}": ${note.id} -> ${fileKey}`);
|
console.log(`[handleSaveNote] BLOC-NOTES: Renaming Untitled note to "${noteTitle}": ${note.id} -> ${fileKey}`);
|
||||||
// Store the old id to delete it later
|
// Store the old id to delete it later
|
||||||
(note as any)._oldUntitledId = note.id;
|
(note as any)._oldUntitledId = note.id;
|
||||||
note.id = fileKey; // Update note.id to the new fileKey
|
note.id = fileKey; // Update note.id to the new fileKey
|
||||||
} else if (note.id && !note.id.startsWith('temp-') && note.id.includes(`user-${session?.user?.id}/`)) {
|
} else if (note.id && !note.id.startsWith('temp-') && note.id.includes(`user-${session?.user?.id}/`)) {
|
||||||
// Note has a valid id and we're not renaming, use it directly
|
// Note has a valid id and we're not renaming, use it directly
|
||||||
fileKey = note.id;
|
fileKey = note.id;
|
||||||
console.log(`[handleSaveNote] Using existing note id: ${fileKey}`);
|
console.log(`[handleSaveNote] BLOC-NOTES: Using existing note id directly: ${fileKey}`);
|
||||||
} else {
|
} else {
|
||||||
|
console.log(`[handleSaveNote] BLOC-NOTES: Entering else branch (new note or temp id)`);
|
||||||
// This is a new note or note with temp id
|
// This is a new note or note with temp id
|
||||||
// Strategy: If we have a title, check for existing note with that title
|
// Strategy: If we have a title, check for existing note with that title
|
||||||
// If no title or title is "Untitled", check for existing "Untitled" note
|
// If no title or title is "Untitled", check for existing "Untitled" note
|
||||||
@ -581,33 +597,44 @@ export default function CarnetPage() {
|
|||||||
|
|
||||||
if (noteTitle && noteTitle.trim() !== '' && noteTitle !== 'Untitled') {
|
if (noteTitle && noteTitle.trim() !== '' && noteTitle !== 'Untitled') {
|
||||||
// Note has a real title, check if a note with this title already exists
|
// Note has a real title, check if a note with this title already exists
|
||||||
|
console.log(`[handleSaveNote] BLOC-NOTES: Note has real title: "${noteTitle}"`);
|
||||||
const sanitizedTitle = noteTitle.replace(/[^a-zA-Z0-9._-]/g, '_');
|
const sanitizedTitle = noteTitle.replace(/[^a-zA-Z0-9._-]/g, '_');
|
||||||
const expectedFileKey = `user-${session?.user?.id}/${selectedFolder.toLowerCase()}/${sanitizedTitle}.md`;
|
const expectedFileKey = `user-${session?.user?.id}/${selectedFolder.toLowerCase()}/${sanitizedTitle}.md`;
|
||||||
|
console.log(`[handleSaveNote] BLOC-NOTES: Expected fileKey: ${expectedFileKey}`);
|
||||||
|
|
||||||
const existingNoteWithTitle = notes.find(n => {
|
const existingNoteWithTitle = notes.find(n => {
|
||||||
const nTitle = n.title || '';
|
const nTitle = n.title || '';
|
||||||
const nId = n.id || '';
|
const nId = n.id || '';
|
||||||
// Check if title matches exactly or if the id matches the expected fileKey
|
// Check if title matches exactly or if the id matches the expected fileKey
|
||||||
return (nTitle === noteTitle && nTitle !== 'Untitled') || nId === expectedFileKey;
|
const matches = (nTitle === noteTitle && nTitle !== 'Untitled') || nId === expectedFileKey;
|
||||||
|
if (matches) {
|
||||||
|
console.log(`[handleSaveNote] BLOC-NOTES: Found matching note:`, { id: nId, title: nTitle });
|
||||||
|
}
|
||||||
|
return matches;
|
||||||
});
|
});
|
||||||
|
|
||||||
if (existingNoteWithTitle) {
|
if (existingNoteWithTitle) {
|
||||||
// Update the existing note with this title
|
// Update the existing note with this title
|
||||||
console.log(`[handleSaveNote] Found existing note with title "${noteTitle}", updating: ${existingNoteWithTitle.id}`);
|
console.log(`[handleSaveNote] BLOC-NOTES: Found existing note with title "${noteTitle}", updating: ${existingNoteWithTitle.id}`);
|
||||||
note.id = existingNoteWithTitle.id;
|
note.id = existingNoteWithTitle.id;
|
||||||
fileKey = existingNoteWithTitle.id;
|
fileKey = existingNoteWithTitle.id;
|
||||||
} else {
|
} else {
|
||||||
// Check if there's an "Untitled" note we should update (user added title to Untitled note)
|
// Check if there's an "Untitled" note we should update (user added title to Untitled note)
|
||||||
|
console.log(`[handleSaveNote] BLOC-NOTES: No note with title "${noteTitle}" found, checking for Untitled note...`);
|
||||||
const untitledNote = notes.find(n => {
|
const untitledNote = notes.find(n => {
|
||||||
const nTitle = n.title || '';
|
const nTitle = n.title || '';
|
||||||
return (nTitle === 'Untitled' || nTitle === '' || nTitle.trim() === '') &&
|
const isUntitled = (nTitle === 'Untitled' || nTitle === '' || nTitle.trim() === '') &&
|
||||||
n.id && n.id.includes(`user-${session?.user?.id}/${selectedFolder.toLowerCase()}/`);
|
n.id && n.id.includes(`user-${session?.user?.id}/${selectedFolder.toLowerCase()}/`);
|
||||||
|
if (isUntitled) {
|
||||||
|
console.log(`[handleSaveNote] BLOC-NOTES: Found Untitled note:`, { id: n.id, title: nTitle });
|
||||||
|
}
|
||||||
|
return isUntitled;
|
||||||
});
|
});
|
||||||
|
|
||||||
if (untitledNote) {
|
if (untitledNote) {
|
||||||
// Rename the Untitled note with the new title
|
// Rename the Untitled note with the new title
|
||||||
// Use the new fileKey based on the new title
|
// Use the new fileKey based on the new title
|
||||||
console.log(`[handleSaveNote] Renaming Untitled note to "${noteTitle}": ${untitledNote.id} -> ${expectedFileKey}`);
|
console.log(`[handleSaveNote] BLOC-NOTES: Renaming Untitled note to "${noteTitle}": ${untitledNote.id} -> ${expectedFileKey}`);
|
||||||
// Store the old id to delete it later
|
// Store the old id to delete it later
|
||||||
const oldUntitledId = untitledNote.id;
|
const oldUntitledId = untitledNote.id;
|
||||||
fileKey = expectedFileKey;
|
fileKey = expectedFileKey;
|
||||||
@ -618,27 +645,33 @@ export default function CarnetPage() {
|
|||||||
} else {
|
} else {
|
||||||
// No existing note found, create new one
|
// No existing note found, create new one
|
||||||
fileKey = expectedFileKey;
|
fileKey = expectedFileKey;
|
||||||
console.log(`[handleSaveNote] Creating new note with fileKey: ${fileKey}`);
|
console.log(`[handleSaveNote] BLOC-NOTES: No existing note found, creating new one with fileKey: ${fileKey}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
console.log(`[handleSaveNote] BLOC-NOTES: Note has no title or title is "Untitled"`);
|
||||||
// No title or title is "Untitled", check for existing Untitled note
|
// No title or title is "Untitled", check for existing Untitled note
|
||||||
|
console.log(`[handleSaveNote] BLOC-NOTES: Searching for existing Untitled note...`);
|
||||||
const untitledNote = notes.find(n => {
|
const untitledNote = notes.find(n => {
|
||||||
const nTitle = n.title || '';
|
const nTitle = n.title || '';
|
||||||
return (nTitle === 'Untitled' || nTitle === '' || nTitle.trim() === '') &&
|
const isUntitled = (nTitle === 'Untitled' || nTitle === '' || nTitle.trim() === '') &&
|
||||||
n.id && n.id.includes(`user-${session?.user?.id}/${selectedFolder.toLowerCase()}/`);
|
n.id && n.id.includes(`user-${session?.user?.id}/${selectedFolder.toLowerCase()}/`);
|
||||||
|
if (isUntitled) {
|
||||||
|
console.log(`[handleSaveNote] BLOC-NOTES: Found Untitled note:`, { id: n.id, title: nTitle });
|
||||||
|
}
|
||||||
|
return isUntitled;
|
||||||
});
|
});
|
||||||
|
|
||||||
if (untitledNote) {
|
if (untitledNote) {
|
||||||
// Use existing Untitled note
|
// Use existing Untitled note
|
||||||
console.log(`[handleSaveNote] Using existing Untitled note: ${untitledNote.id}`);
|
console.log(`[handleSaveNote] BLOC-NOTES: Using existing Untitled note: ${untitledNote.id}`);
|
||||||
note.id = untitledNote.id;
|
note.id = untitledNote.id;
|
||||||
noteTitle = 'Untitled';
|
noteTitle = 'Untitled';
|
||||||
fileKey = untitledNote.id;
|
fileKey = untitledNote.id;
|
||||||
} else {
|
} else {
|
||||||
// Create new Untitled note
|
// Create new Untitled note
|
||||||
fileKey = `user-${session?.user?.id}/${selectedFolder.toLowerCase()}/Untitled.md`;
|
fileKey = `user-${session?.user?.id}/${selectedFolder.toLowerCase()}/Untitled.md`;
|
||||||
console.log(`[handleSaveNote] Creating new Untitled note: ${fileKey}`);
|
console.log(`[handleSaveNote] BLOC-NOTES: No Untitled note found, creating new one: ${fileKey}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -979,18 +1012,30 @@ export default function CarnetPage() {
|
|||||||
setShowNotes(false);
|
setShowNotes(false);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// For other folders (Bloc-notes), refresh notes list first
|
// For other folders (Bloc-notes)
|
||||||
|
console.log(`[handleNewNote] BLOC-NOTES: Starting new note creation`);
|
||||||
|
console.log(`[handleNewNote] BLOC-NOTES: Current notes count: ${notes.length}`);
|
||||||
|
console.log(`[handleNewNote] BLOC-NOTES: Current notes:`, notes.map(n => ({ id: n.id, title: n.title })));
|
||||||
|
|
||||||
|
// Refresh notes list first
|
||||||
|
console.log(`[handleNewNote] BLOC-NOTES: Refreshing notes list...`);
|
||||||
await fetchNotes(true);
|
await fetchNotes(true);
|
||||||
|
console.log(`[handleNewNote] BLOC-NOTES: After refresh, notes count: ${notes.length}`);
|
||||||
|
console.log(`[handleNewNote] BLOC-NOTES: After refresh, notes:`, notes.map(n => ({ id: n.id, title: n.title })));
|
||||||
|
|
||||||
// Check if "Untitled" already exists
|
// Check if "Untitled" already exists
|
||||||
const untitledNote = notes.find(note => {
|
const untitledNote = notes.find(note => {
|
||||||
const title = note.title || '';
|
const title = note.title || '';
|
||||||
return title === 'Untitled' || title === '' || title.trim() === '';
|
const isUntitled = title === 'Untitled' || title === '' || title.trim() === '';
|
||||||
|
if (isUntitled) {
|
||||||
|
console.log(`[handleNewNote] BLOC-NOTES: Found potential Untitled note:`, { id: note.id, title: note.title });
|
||||||
|
}
|
||||||
|
return isUntitled;
|
||||||
});
|
});
|
||||||
|
|
||||||
if (untitledNote) {
|
if (untitledNote) {
|
||||||
// Open the existing untitled note
|
// Open the existing untitled note
|
||||||
console.log(`[handleNewNote] Found existing untitled note: ${untitledNote.id}`);
|
console.log(`[handleNewNote] BLOC-NOTES: Found existing untitled note, opening it:`, { id: untitledNote.id, title: untitledNote.title });
|
||||||
handleNoteSelect(untitledNote);
|
handleNoteSelect(untitledNote);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -998,7 +1043,8 @@ export default function CarnetPage() {
|
|||||||
// Create a blank note with a temporary unique id to track it
|
// Create a blank note with a temporary unique id to track it
|
||||||
// This id will be used in handleSaveNote to check for duplicates
|
// This id will be used in handleSaveNote to check for duplicates
|
||||||
const tempId = `temp-${Date.now()}`;
|
const tempId = `temp-${Date.now()}`;
|
||||||
setSelectedNote({
|
console.log(`[handleNewNote] BLOC-NOTES: No existing Untitled note found, creating new note with temp id: ${tempId}`);
|
||||||
|
const newNote = {
|
||||||
id: tempId, // Temporary id to track this new note
|
id: tempId, // Temporary id to track this new note
|
||||||
title: '',
|
title: '',
|
||||||
content: '',
|
content: '',
|
||||||
@ -1006,7 +1052,9 @@ export default function CarnetPage() {
|
|||||||
type: 'file',
|
type: 'file',
|
||||||
mime: 'text/markdown',
|
mime: 'text/markdown',
|
||||||
etag: ''
|
etag: ''
|
||||||
});
|
};
|
||||||
|
console.log(`[handleNewNote] BLOC-NOTES: Setting selectedNote:`, newNote);
|
||||||
|
setSelectedNote(newNote);
|
||||||
if (isMobile) {
|
if (isMobile) {
|
||||||
setShowNotes(false);
|
setShowNotes(false);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -188,12 +188,17 @@ export const Editor: React.FC<EditorProps> = ({ note, onSave, currentFolder = 'N
|
|||||||
clearTimeout(saveTimeout.current);
|
clearTimeout(saveTimeout.current);
|
||||||
}
|
}
|
||||||
saveTimeout.current = setTimeout(() => {
|
saveTimeout.current = setTimeout(() => {
|
||||||
|
console.log(`[Editor] debouncedSave triggered for folder: ${currentFolder}`);
|
||||||
handleSave();
|
handleSave();
|
||||||
}, 1000); // Save after 1 second of inactivity
|
}, 1000); // Save after 1 second of inactivity
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleSave = async () => {
|
const handleSave = async () => {
|
||||||
if (!title || !content) return;
|
console.log(`[Editor] handleSave called - folder: ${currentFolder}, title: "${title}", content length: ${content?.length || 0}`);
|
||||||
|
if (!title || !content) {
|
||||||
|
console.log(`[Editor] handleSave: Skipping save - title: "${title}", content: "${content}"`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (!session) {
|
if (!session) {
|
||||||
console.error('No active session, cannot save');
|
console.error('No active session, cannot save');
|
||||||
setError('You must be logged in to save notes');
|
setError('You must be logged in to save notes');
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user