fix: History manquant sur GridCard (le VRAI composant carte grille)
All checks were successful
CI / Lint, Unit Tests & Build (push) Successful in 6m17s
CI / Deploy production (on server) (push) Successful in 22s

Root cause: le mode grille utilise GridCard dans notes-list-views.tsx,
PAS NoteCard de note-card.tsx. Toutes les fixes précédentes étaient
sur le mauvais composant.

Fix:
- onOpenHistory ajouté à GridCardSharedProps
- Badge History en haut-droite si historyEnabled=true
- Bouton History dans la barre d'actions (vert si activé, gris sinon)
- Prop threadé: NotesListViews → NotesMasonryGrid → GridCard
This commit is contained in:
Antigravity
2026-07-04 21:09:27 +00:00
parent 06c771ee9d
commit cf5d6a202b

View File

@@ -349,6 +349,7 @@ export function NotesListViews({
onDeleteNote={onDeleteNote}
onMoveToNotebook={onMoveToNotebook}
onNoteIllustrationGenerated={onNoteIllustrationGenerated}
onOpenHistory={onOpenHistory}
onGridReorder={onGridReorder}
pinnedLabel={t('notes.pinned')}
/>
@@ -505,6 +506,7 @@ type GridCardSharedProps = {
onMoveToNotebook?: (note: Note, notebookId: string | null) => void | Promise<void>
onNoteIllustrationGenerated?: (noteId: string) => void | Promise<void>
onNoteIllustrationDeleted?: (noteId: string) => void | Promise<void>
onOpenHistory?: (note: Note) => void
isOverlay?: boolean
}
@@ -713,6 +715,7 @@ const GridCard = memo(function GridCard({
onMoveToNotebook,
onNoteIllustrationGenerated,
onNoteIllustrationDeleted,
onOpenHistory,
isOverlay = false,
}: GridCardSharedProps) {
const router = useRouter()
@@ -758,6 +761,11 @@ const GridCard = memo(function GridCard({
<Pin size={11} className="fill-amber-500" />
</div>
)}
{note.historyEnabled && (
<div className="absolute top-3 end-3 bg-emerald-500/15 dark:bg-emerald-500/25 border border-emerald-500/20 p-1 rounded-full shadow-sm backdrop-blur-sm text-emerald-600 dark:text-emerald-400">
<History size={11} />
</div>
)}
</div>
<div className="p-5 flex flex-col flex-1 min-h-[11.5rem]">
<div className="space-y-2.5 flex-1">
@@ -810,6 +818,22 @@ const GridCard = memo(function GridCard({
</button>
</MoveToNotebookPicker>
)}
{onOpenHistory && (
<button
type="button"
onClick={(e) => { e.stopPropagation(); onOpenHistory(note) }}
className={cn(
"p-1 px-2 rounded-full transition-all cursor-pointer",
note.historyEnabled
? "text-emerald-500 hover:bg-emerald-500/10"
: "text-muted-foreground/60 hover:bg-muted hover:text-foreground"
)}
title={note.historyEnabled ? (t('notes.history') || 'Historique') : (t('notes.enableHistory') || "Activer l'historique")}
aria-label={note.historyEnabled ? (t('notes.history') || 'Historique') : (t('notes.enableHistory') || "Activer l'historique")}
>
<History size={11} />
</button>
)}
<button
type="button"
onClick={handleDeleteClick}