- Added multi-provider AI infrastructure (OpenAI/Ollama) - Implemented real-time tag suggestions with debounced analysis - Created AI diagnostics and database maintenance tools in Settings - Added automated garbage collection for orphan labels - Refined UX with deterministic color hashing and interactive ghost tags
2.4 KiB
2.4 KiB
Story 1.1: Mise en place de l'infrastructure Muuri
Status: ready-for-dev
Story
As a user, I want my notes to be displayed in a high-performance Masonry grid, so that my dashboard is visually organized without unnecessary gaps.
Acceptance Criteria
- Given that the
muuriandweb-animations-jslibraries are installed. - When I load the main page.
- Then existing notes automatically organize themselves into a Muuri Masonry grid.
- And the layout dynamically adapts to window resizing.
Tasks / Subtasks
- Installation des dépendances (AC: 1)
npm install muuri web-animations-js
- Création du composant Client
MasonryGrid(AC: 2, 3)- Initialiser l'instance Muuri dans un
useEffect - Gérer le cycle de vie de l'instance (destroy sur unmount)
- Configurer Muuri pour utiliser
web-animations-jspour les transitions
- Initialiser l'instance Muuri dans un
- Intégration du Layout dans la page principale (AC: 2, 3)
- Remplacer l'actuel layout CSS Columns par le nouveau composant
MasonryGrid - S'assurer que les notes existantes sont rendues comme éléments Muuri
- Remplacer l'actuel layout CSS Columns par le nouveau composant
- Gestion du Redimensionnement (AC: 4)
- S'assurer que Muuri recalcule le layout lors du resize de la fenêtre
Dev Notes
- Architecture Pattern : Utiliser un composant client (
"use client") pourMasonryGridcar Muuri manipule directement le DOM. - Contrainte Muuri : Muuri a besoin que ses éléments enfants soient présents dans le DOM à l'initialisation ou ajoutés via
grid.add(). Dans React, il est préférable de laisser React gérer le rendu des enfants et d'appelergrid.refreshItems().layout()après les mises à jour de l'état. - Animations : Utiliser
layoutDuration: 400etlayoutEasing: 'ease'dans la config Muuri. - Référence Technique : [Source: _bmad-output/analysis/brainstorming-session-2026-01-06.md#Idea Organization and Prioritization]
Project Structure Notes
- Le composant
MasonryGriddoit être placé danskeep-notes/components/. - Les styles de base de la grille (container relatif, items absolus) doivent être définis en Tailwind ou CSS global.
References
- [PRD Requirements: _bmad-output/planning-artifacts/prd.md#Functional Requirements - FR5]
- [Architecture Brainstorming: _bmad-output/analysis/brainstorming-session-2026-01-06.md]