Przejdź do głównej zawartości

16. Sticky Notes

Aplikacja karteczek samoprzylepnych (sticky notes) — tworzenie kolorowych karteczek, edycja treści, usuwanie i opcjonalne przeciąganie po ekranie.

function StickyNote({ note, onUpdate, onDelete }) {
const [editing, setEditing] = useState(false);
const [text, setText] = useState(note.text);
function save() {
onUpdate(note.id, { text });
setEditing(false);
}
return (
<div
className="sticky-note"
style={{ backgroundColor: note.color, transform: `rotate(${note.rotation}deg)` }}
>
{editing ? (
<textarea value={text} onChange={(e) => setText(e.target.value)} onBlur={save} autoFocus />
) : (
<p onClick={() => setEditing(true)}>{text || 'Kliknij, aby edytować...'}</p>
)}
<button className="delete-btn" onClick={() => onDelete(note.id)}></button>
</div>
);
}
  • Tworzenie nowych karteczek
  • Edycja treści (kliknięcie → textarea)
  • Wybór koloru (6-8 predefiniowanych kolorów)
  • Usuwanie karteczek
  • Zapis w localStorage
Ocena: 3.0

Powodzenia!

Sticky Notes to projekt wizualnie atrakcyjny i zabawny w robieniu. Edycja przez kliknięcie (zmiana p na textarea) jest eleganckim wzorcem UX. Losowy obrót karteczki (np. rotate(${Math.random() * 6 - 3}deg)) od razu dodaje charakteru!