[Refactor] Complete GetX Migration — Remove All Remaining `setState` and `GetBuilder` Usage
Chưa có ai nhận issue này.
- #616 của @inderjeet20 — đã đóng, không merge
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 35/100
Hướng nghiên cứu
Bắt đầu với các tệp được nêu trong issue: tags_widget.dart, date_picker_input.dart, profile_view.dart, manage_task_server_page_body.dart, add_task_bottom_sheet_new.dart và tasks_builder.dart. Chạy grep -r "setState" lib/app/ và kiểm tra các mẫu GetX hiện có trong HomeController và DetailRouteController. Hoàn tất khi các lệnh gọi quản lý trạng thái native được liệt kê, các lệnh gọi update() mồ côi và việc sử dụng riêng tư _refreshTasks() đã được loại bỏ mà không để lại kết quả khớp nào đang hoạt động.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Summary
Several files in the codebase still use Flutter's native setState / StatefulBuilder for local UI state, and one instance of GetBuilder remains in the app. These are inconsistent with the project's GetX-first architecture already established in HomeController, DetailRouteController, etc.
Problem
| File | Issue |
|---|---|
tags_widget.dart |
TagsRoute is a StatefulWidget with 3 setState calls — no corresponding GetX controller exists |
date_picker_input.dart |
3 setState calls managing currentIndex and _selectedDates list |
profile_view.dart |
StatefulBuilder wrapping dialog content with 2 setState calls for selectedMode |
manage_task_server_page_body.dart |
1 setState inside modal + 1 GetBuilder<ManageTaskServerController> |
add_task_bottom_sheet_new.dart |
4 orphaned homeController.update() calls — NOPs since no GetBuilder listens |
tasks_builder.dart |
Calls private storageWidget._refreshTasks() — brittle and bypasses the public API |
Expected Behavior
All UI state should be managed via .obs reactive variables and Obx widgets, consistent with the existing GetX architecture. No setState, StatefulBuilder, or orphaned update() calls should remain in the app code.
Steps to Reproduce
Run grep -r "setState" lib/app/ — returns active hits in the files above.
Labels
refactor getx state-management good first issue
- Ngôn ngữ chính
- Dart
- Star
- 244
- Fork
- 180
- Merge trung bình
- 16 giờ 19 phút
- Pull request đã merge (30 ngày)
- 4
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của CCExtractor/taskwarrior-flutter
-
Fix misaligned text "Select the directory" in settings tileCó thể làm lại được @alabeddev đã nhận 201 ngày trước và không có pull request nào đang mở. Đang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
CCExtractor/taskwarrior-flutter#639 · 2 bình luận ·
-
bug
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
-
Drawer should close automatically when navigating to a new screenCó thể làm lại được Pull request cho issue này đã bị đóng mà không được merge. Đang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
-
Sensitive Credentials Stored in Plain Text Files Without EncryptionCó thể làm lại được @sahu-virendra-1908 đã nhận 199 ngày trước và không có pull request nào đang mở. Đang mởbug
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 45/100
CCExtractor/taskwarrior-flutter#645 · 1 bình luận ·
-
Data Inconsistency When Editing Task (Missing Transaction)Có thể làm lại được @aryanorastar đã nhận 59 ngày trước và không có pull request nào đang mở. Đang mởbug
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 52/100
CCExtractor/taskwarrior-flutter#643 · 1 bình luận ·
Tất cả issue của CCExtractor/taskwarrior-flutter
Issue tương tự
-
backlog:low bug localization
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
simonoppowa/OpenNutriTracker#1366 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
backlog documentation good first issue priority: medium
Độ khó 2/5 Nửa ngày Mức phù hợp với người mới 78/100
-
coverage 1.16.0: format_coverage fails on the `{}` that `dart test --coverage` writes for fully skipped suitesCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
Maintainer thường phản hồi trong vòng 1 ngày
-
fyi-ecosystem platform-ios team-ios
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 70/100
flutter/flutter#194348 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
Maintainer thường phản hồi trong vòng 1 ngày