# Story 4.2: Giao diện Phân rã Ân hạn khi ngắt mạng (Graceful Degradation Offline UI) **Status:** done **Epic:** Epic 4 **Story Key:** `4-2-graceful-degradation-offline-ui` ## 📖 Story Requirements (Context & PRD) > This section maps directly to the original Product Requirements Document and Epics definition. As a Người dùng, I want hệ thống tự động khóa các tính năng cần internet như "Chat/Gửi tin/Upload" khi tôi mất wifi, So that tôi không bị văng lỗi hay hiện màn hình đơ cứng, thay vào đó vẫn thong dong đọc nội dung cũ (NFR-R1). **Acceptance Criteria:** **Given** người dùng cấu hình ngắt mạng cố ý hoặc đột ngột mất wifi **When** họ đang mở app **Then** giao diện tự động bật mode Graceful Degradation: Input chat bị disable, nút Upload file bị mờ (muted xám) **And** người dùng vẫn có thể click đọc văn bản trên màn Split-Pane thoăn thoắt không trễ (UX-DR6). ## 🏗️ Architecture & Technical Guardrails > Critical instructions for the development agent based on the project's established architecture. ### Technical Requirements - Language/Framework: React, Next.js (TypeScript) for Web; FastAPI (Python) for Backend. - Database: Prisma/Supabase. - Strict Type checking must be enforced. No `any` types. ### Code Organization This story is currently marked as `done`. Implementation should target the following components/files: *(Files to be determined during implementation)* ### Developer Agent Constraints 1. **No Destructive Refactors**: Extend existing modules when possible. 2. **Context Check**: Always refer back to `task.md` and use Context7 to verify latest SDK usages. 3. **BMad Standard**: Update the sprint status using standard metrics. ## 🧪 Testing & Validation Requirements - All new endpoints must be tested. - Frontend components should gracefully degrade. - Do not introduce regressions into existing user workflows. ## 📈 Completion Status *(To be updated by the agent when completing this story)* - Start Date: _____________ - Completion Date: _____________ - Key Files Changed: -