refactor(NotesPageClient, MarkdownEditor): enhance layout responsiveness by adjusting flex properties and ensuring proper overflow handling

This commit is contained in:
Julien Froidefond
2026-01-28 11:24:05 +01:00
parent 69f8dcb7bf
commit c437baa8e6
2 changed files with 15 additions and 13 deletions

View File

@@ -449,7 +449,7 @@ function NotesPageContent({
</div> </div>
{/* Main Editor Area */} {/* Main Editor Area */}
<div className="flex-1 flex flex-col min-h-0"> <div className="flex-1 flex flex-col min-h-0 min-w-0 w-0">
{error && ( {error && (
<div className="flex items-center gap-2 p-3 bg-[var(--destructive)]/10 border-b border-[var(--destructive)]/20 text-[var(--destructive)]"> <div className="flex items-center gap-2 p-3 bg-[var(--destructive)]/10 border-b border-[var(--destructive)]/20 text-[var(--destructive)]">
<AlertCircle className="w-4 h-4" /> <AlertCircle className="w-4 h-4" />
@@ -466,9 +466,11 @@ function NotesPageContent({
{selectedNote ? ( {selectedNote ? (
<> <>
{/* Note Header */} {/* Note Header */}
<div className={`${glassDivider} flex items-center gap-4 p-4`}> <div
<FileText className="w-5 h-5 text-[var(--muted-foreground)]" /> className={`${glassDivider} flex items-center gap-4 p-4 overflow-hidden`}
<div className="flex-1"> >
<FileText className="w-5 h-5 text-[var(--muted-foreground)] flex-shrink-0" />
<div className="flex-1 min-w-0">
<h2 className="text-lg font-semibold text-[var(--foreground)] truncate"> <h2 className="text-lg font-semibold text-[var(--foreground)] truncate">
{getNoteTitle(selectedNote.content)} {getNoteTitle(selectedNote.content)}
</h2> </h2>
@@ -495,13 +497,13 @@ function NotesPageContent({
: null; : null;
return currentFolder ? ( return currentFolder ? (
<div className="flex items-center gap-2 mt-1"> <div className="flex items-center gap-2 mt-1 flex-wrap">
<span className="text-xs text-[var(--muted-foreground)]"> <span className="text-xs text-[var(--muted-foreground)]">
📁 {currentFolder.name} 📁 {currentFolder.name}
</span> </span>
{folderTag && ( {folderTag && (
<div <div
className="flex items-center gap-1 px-2 py-0.5 rounded-full text-xs" className="flex items-center gap-1 px-2 py-0.5 rounded-full text-xs flex-shrink-0"
style={{ style={{
backgroundColor: `${folderTag.color}20`, backgroundColor: `${folderTag.color}20`,
color: folderTag.color, color: folderTag.color,
@@ -514,13 +516,13 @@ function NotesPageContent({
) : null; ) : null;
})()} })()}
</div> </div>
<div className="flex items-center gap-2 text-sm text-[var(--muted-foreground)]"> <div className="flex items-center gap-2 text-sm text-[var(--muted-foreground)] flex-shrink-0">
{hasUnsavedChanges && ( {hasUnsavedChanges && (
<span className="text-[var(--accent)]"> <span className="text-[var(--accent)] whitespace-nowrap">
Non sauvegardé Non sauvegardé
</span> </span>
)} )}
<span> <span className="whitespace-nowrap">
Modifié{' '} Modifié{' '}
{new Date(selectedNote.updatedAt).toLocaleDateString( {new Date(selectedNote.updatedAt).toLocaleDateString(
'fr-FR' 'fr-FR'
@@ -530,7 +532,7 @@ function NotesPageContent({
</div> </div>
{/* Editor */} {/* Editor */}
<div className="flex-1 min-h-0"> <div className="flex-1 min-h-0 min-w-0 w-0">
<MarkdownEditor <MarkdownEditor
value={selectedNote.content} value={selectedNote.content}
onChange={handleContentChange} onChange={handleContentChange}

View File

@@ -790,7 +790,7 @@ export function MarkdownEditor({
)} )}
{/* Editor/Tags Area */} {/* Editor/Tags Area */}
<div className="flex-1 flex overflow-hidden"> <div className="flex-1 flex overflow-hidden w-0">
{!isEditing ? ( {!isEditing ? (
/* Mode Aperçu avec Tags */ /* Mode Aperçu avec Tags */
<div className="w-full flex flex-col"> <div className="w-full flex flex-col">
@@ -879,7 +879,7 @@ export function MarkdownEditor({
<> <>
{/* Editor */} {/* Editor */}
<div <div
className={`flex-1 flex flex-col ${showPreview ? 'w-1/2' : 'w-full'}`} className={`flex flex-col ${showPreview ? 'w-1/2 min-w-0' : 'flex-1 w-full'}`}
> >
<div className="p-3 border-b border-[var(--border)]/60 bg-[var(--card)]/40 backdrop-blur-md relative before:absolute before:inset-0 before:bg-gradient-to-r before:from-[color-mix(in_srgb,var(--primary)_8%,transparent)] before:via-[color-mix(in_srgb,var(--primary)_4%,transparent)] before:to-transparent before:opacity-80 before:pointer-events-none"> <div className="p-3 border-b border-[var(--border)]/60 bg-[var(--card)]/40 backdrop-blur-md relative before:absolute before:inset-0 before:bg-gradient-to-r before:from-[color-mix(in_srgb,var(--primary)_8%,transparent)] before:via-[color-mix(in_srgb,var(--primary)_4%,transparent)] before:to-transparent before:opacity-80 before:pointer-events-none">
<div className="flex items-center justify-between relative z-10"> <div className="flex items-center justify-between relative z-10">
@@ -941,7 +941,7 @@ export function MarkdownEditor({
{/* Preview */} {/* Preview */}
{showPreview && ( {showPreview && (
<div className="w-1/2 flex flex-col border-l border-[var(--border)]/60"> <div className="w-1/2 min-w-0 flex flex-col border-l border-[var(--border)]/60">
<div className="p-3 border-b border-[var(--border)]/60 bg-[var(--card)]/40 backdrop-blur-md relative before:absolute before:inset-0 before:bg-gradient-to-r before:from-[color-mix(in_srgb,var(--primary)_8%,transparent)] before:via-[color-mix(in_srgb,var(--primary)_4%,transparent)] before:to-transparent before:opacity-80 before:pointer-events-none"> <div className="p-3 border-b border-[var(--border)]/60 bg-[var(--card)]/40 backdrop-blur-md relative before:absolute before:inset-0 before:bg-gradient-to-r before:from-[color-mix(in_srgb,var(--primary)_8%,transparent)] before:via-[color-mix(in_srgb,var(--primary)_4%,transparent)] before:to-transparent before:opacity-80 before:pointer-events-none">
<span className="text-sm font-medium text-[var(--foreground)] relative z-10"> <span className="text-sm font-medium text-[var(--foreground)] relative z-10">
Aperçu Aperçu