[Refactor] Complete GetX Migration — Remove All Remaining `setState` and `GetBuilder` Usage
まだ誰も着手していません。
- #616 @inderjeet20 による — マージされずにクローズ
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 35/100
調査の方向性
Issue に記載されているファイルから始めます: tags_widget.dart、date_picker_input.dart、profile_view.dart、manage_task_server_page_body.dart、add_task_bottom_sheet_new.dart、tasks_builder.dart。grep -r "setState" lib/app/ を実行し、HomeController と DetailRouteController にある既存の GetX パターンを確認します。記載されたネイティブな状態管理呼び出し、孤立した update() 呼び出し、非公開の _refreshTasks() の使用が削除され、アクティブなヒットが残っていなければ完了です。
索引モデルが issue の本文から書いたものです。
説明
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
- 主要言語
- Dart
- スター
- 244
- フォーク
- 180
- 平均マージ
- 16時間 19分
- マージ済み PR(30日)
- 4
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
CCExtractor/taskwarrior-flutter のほかの issue
-
Fix misaligned text "Select the directory" in settings tile再び着手できるかも @alabeddev が 201 日前に担当しましたが、オープン中のプルリクエストはありません。 オープンbug
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
CCExtractor/taskwarrior-flutter#639 · コメント 2 件 ·
-
bug
難易度 1/5 1時間未満 初心者へのやさしさ 85/100
-
Drawer should close automatically when navigating to a new screen再び着手できるかも このイシューのプルリクエストはマージされずにクローズされました。 オープンbug
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
-
Sensitive Credentials Stored in Plain Text Files Without Encryption再び着手できるかも @sahu-virendra-1908 が 198 日前に担当しましたが、オープン中のプルリクエストはありません。 オープンbug
難易度 5/5 1週間以上 初心者へのやさしさ 45/100
CCExtractor/taskwarrior-flutter#645 · コメント 1 件 ·
-
Data Inconsistency When Editing Task (Missing Transaction)再び着手できるかも @aryanorastar が 59 日前に担当しましたが、オープン中のプルリクエストはありません。 オープンbug
難易度 4/5 3〜5日 初心者へのやさしさ 52/100
CCExtractor/taskwarrior-flutter#643 · コメント 1 件 ·
CCExtractor/taskwarrior-flutter の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
メンテナーはふだん 1 日以内に返信
-
fyi-ecosystem platform-ios team-ios
難易度 1/5 1時間未満 初心者へのやさしさ 70/100
flutter/flutter#194348 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
documentation good first issue
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
djazairdev/wilayas#22 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 80/100
rajput-hemant/calculator#199 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
leancodepl/app-rating#35 ·