← Quay lại mục lục

Bài 25 — Drag & Drop Reorder

List 8 task có thể drag để sắp xếp lại + save vào localStorage. UI interaction + state ordering + persistence.

Khó #drag-drop #reorder #localStorage #persistence #ui-interaction

↕️ Bài 25: Drag & Drop Reorder

List 8 task có thể drag để sắp xếp lại thứ tự. Bài tập về UI interaction + state ordering + persistence.

📋 Quy tắc

  1. Mỗi item có handle (≡) để drag.
  2. Khi drag → hiển thị placeholder ở vị trí mới.
  3. Drop ở vị trí khác → cập nhật thứ tự.
  4. Drop ngoài area hoặc về vị trí cũ → không thay đổi.
  5. Mỗi item hiển thị order index (1, 2, 3, ...).
  6. Có nút "Save order" để persist (lưu vào localStorage).
  7. Có nút "Reset" để về thứ tự mặc định.

📌 Items mặc định

  1. Mua đồ tạp hóa
  2. Đi tập gym
  3. Họp với team
  4. Code review
  5. Đọc sách
  6. Nấu cơm
  7. Gọi điện cho mẹ
  8. Xem phim cuối tuần

🎯 Yêu cầu

  1. Test drag từ vị trí A → vị trí B (cả lên và xuống).
  2. Test drag rồi drop về vị trí cũ (không thay đổi).
  3. Test order index update sau mỗi lần drop.
  4. Test Save → Reload trang → thứ tự có giữ?
  5. Test Reset → về default 1-8.
  6. Test edge case: drag item lên đầu, drag item xuống cuối.
⚠️ Bug được cài cắm: order index không update, save không persist đúng, reset không hoạt động đầy đủ, drop về vị trí cũ vẫn trigger reorder.
🔐

Vui lòng đăng nhập để nộp bài.

Đăng nhập
🔐

Tab dành cho giảng viên

Tab này chứa danh sách các lỗi đã cài cắm trong form. Vui lòng nhập mã giảng viên để mở khóa. Mã sẽ ghi nhớ trong phiên làm việc — chỉ cần nhập 1 lần cho cả 3 bài.